diff --git a/client/homebrew/editor/editor.jsx b/client/homebrew/editor/editor.jsx index 4a7b9be08..4894b881d 100644 --- a/client/homebrew/editor/editor.jsx +++ b/client/homebrew/editor/editor.jsx @@ -102,10 +102,15 @@ const Editor = createClass({ if((prevProps.isDragging !== this.props.isDragging) && (this.props.isDragging) && (this.lastCursor == undefined)) { this.lastCursor = this.codeEditor.current.codeMirror.getCursor(); + const lastXY = this.codeEditor.current.codeMirror.getScrollInfo(); + const lastRowPos = this.codeEditor.current.codeMirror.heightAtLine(this.lastCursor.line, 'local', true); + this.lastCursor.offset = Math.round(lastRowPos-lastXY.top); } if((prevProps.isDragging !== this.props.isDragging) && (!this.props.isDragging)) { - this.codeEditor.current.codeMirror.scrollTo(null, this.codeEditor.current.codeMirror.heightAtLine(this.lastCursor.line, 'local', true)) + const scroll = this.codeEditor.current.codeMirror.getScrollInfo(); + this.codeEditor.current.codeMirror.scrollTo(null, + this.codeEditor.current.codeMirror.heightAtLine(this.lastCursor.line, 'local', true) - this.lastCursor.offset); this.codeEditor.current.setCursorPosition(this.lastCursor.line, this.lastCursor.ch); this.lastCursor = undefined; }