Fix view scroll position might lost when editor changes the last line and might get wrong knob position

This commit is contained in:
Cheng-Han, Wu 2016-04-20 22:34:52 +08:00
parent 197ac5d5fb
commit f693399c76
1 changed files with 11 additions and 6 deletions

View File

@ -783,12 +783,7 @@ function checkEditorStyle() {
if (scrollbarStyle == 'overlay' || currentMode == modeType.both) {
ui.area.codemirrorScroll.css('height', desireHeight + 'px');
ui.area.codemirrorScroll.css('min-height', '');
// workaround simple scroll bar knob
// will get wrong position when editor height changed
var scrollInfo = editor.getScrollInfo();
preventSyncScroll = true;
editor.scrollTo(null, scrollInfo.top - 1);
editor.scrollTo(null, scrollInfo.top);
checkEditorScrollbar();
} else if (scrollbarStyle == 'native') {
ui.area.codemirrorScroll.css('height', '');
ui.area.codemirrorScroll.css('min-height', desireHeight + 'px');
@ -806,6 +801,15 @@ function checkEditorStyle() {
});
}
function checkEditorScrollbar() {
// workaround simple scroll bar knob
// will get wrong position when editor height changed
var scrollInfo = editor.getScrollInfo();
preventSyncScroll = true;
editor.scrollTo(null, scrollInfo.top - 1);
editor.scrollTo(null, scrollInfo.top);
}
function checkTocStyle() {
//toc right
var paddingRight = parseFloat(ui.area.markdown.css('padding-right'));
@ -2216,6 +2220,7 @@ editor.on('changes', function (cm, changes) {
viewportMargin = newViewportMargin;
windowResize();
}
checkEditorScrollbar();
});
editor.on('focus', function (cm) {
for (var i = 0; i < onlineUsers.length; i++) {