Add settings to scroll on edition out of viewport (#3282)

* Add scroll when it edits a line out of viewport

By default, when there is an edition of a line, which is out of the
viewport, Etherpad scrolls the minimum necessary to make this line
visible. This makes that the line stays either on the top or the bottom
of the viewport. With this commit, we add a setting to make possible to
scroll to a position x% pixels from the viewport. Besides of that, we
add a setting to make an animation of this scroll.
If nothing is changed on settings.json the Etherpad default behavior is
kept
This commit is contained in:
Joas Souza 2018-01-03 18:57:28 -03:00 committed by Luiza Pagliari
parent 291f700376
commit f1fcd16894
7 changed files with 1392 additions and 155 deletions

View file

@ -150,6 +150,34 @@
/* Time (in seconds) to automatically reconnect pad when a "Force reconnect"
message is shown to user. Set to 0 to disable automatic reconnection */
"automaticReconnectionTimeout" : 0,
/*
* By default, when caret is moved out of viewport, it scrolls the minimum height needed to make this
* line visible.
*/
"scrollWhenFocusLineIsOutOfViewport": {
/*
* Percentage of viewport height to be additionally scrolled.
* E.g use "percentage.editionAboveViewport": 0.5, to place caret line in the
* middle of viewport, when user edits a line above of the viewport
* Set to 0 to disable extra scrolling
*/
"percentage": {
"editionAboveViewport": 0,
"editionBelowViewport": 0
},
/* Time (in milliseconds) used to animate the scroll transition. Set to 0 to disable animation */
"duration": 0,
/*
* Flag to control if it should scroll when user places the caret in the last line of the viewport
*/
"scrollWhenCaretIsInTheLastLineOfViewport": false,
/*
* Percentage of viewport height to be additionally scrolled when user presses arrow up
* in the line of the top of the viewport.
* Set to 0 to let the scroll to be handled as default by the Etherpad
*/
"percentageToScrollWhenUserPressesArrowUp": 0
},
/* Users for basic authentication. is_admin = true gives access to /admin.
If you do not uncomment this, /admin will not be available! */