Merge pull request #2944 from storytouch/aceRegisterNonScrollableEditEvents
Create hook to register events that won't scroll editor after aceEditEvtpull/3026/head
commit
f09e10b122
|
@ -134,6 +134,20 @@ Things in context:
|
|||
|
||||
This hook is made available to edit the edit events that might occur when changes are made. Currently you can change the editor information, some of the meanings of the edit, and so on. You can also make internal changes (internal to your plugin) that use the information provided by the edit event.
|
||||
|
||||
## aceRegisterNonScrollableEditEvents
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
Things in context: None
|
||||
|
||||
When aceEditEvent (documented above) finishes processing the event, it scrolls the viewport to make caret visible to the user, but if you don't want that behavior to happen you can use this hook to register which edit events should not scroll viewport. The return value of this hook should be a list of event names.
|
||||
|
||||
Example:
|
||||
```
|
||||
exports.aceRegisterNonScrollableEditEvents = function(){
|
||||
return [ 'repaginate', 'updatePageCount' ];
|
||||
}
|
||||
```
|
||||
|
||||
## aceRegisterBlockElements
|
||||
Called from: src/static/js/ace2_inner.js
|
||||
|
||||
|
|
|
@ -369,6 +369,19 @@ function Ace2Inner(){
|
|||
return thisAuthor;
|
||||
}
|
||||
|
||||
var _nonScrollableEditEvents = {
|
||||
"applyChangesToBase": 1
|
||||
};
|
||||
|
||||
_.each(hooks.callAll('aceRegisterNonScrollableEditEvents'), function(eventType) {
|
||||
_nonScrollableEditEvents[eventType] = 1;
|
||||
});
|
||||
|
||||
function isScrollableEditEvent(eventType)
|
||||
{
|
||||
return !_nonScrollableEditEvents[eventType];
|
||||
}
|
||||
|
||||
var currentCallStack = null;
|
||||
|
||||
function inCallStack(type, action)
|
||||
|
@ -506,7 +519,7 @@ function Ace2Inner(){
|
|||
{
|
||||
updateBrowserSelectionFromRep();
|
||||
}
|
||||
if ((cs.docTextChanged || cs.userChangedSelection) && cs.type != "applyChangesToBase")
|
||||
if ((cs.docTextChanged || cs.userChangedSelection) && isScrollableEditEvent(cs.type))
|
||||
{
|
||||
scrollSelectionIntoView();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue