Merge pull request #411 from sharelatex/ja-fix-cursor-on-resize

Ja fix cursor on resize
This commit is contained in:
James Allen 2017-02-08 11:30:37 +01:00 committed by GitHub
commit d44a0ece97

View file

@ -167,10 +167,22 @@ define [
if arg == "/" if arg == "/"
ace.require("ace/ext/searchbox").Search(editor, true) ace.require("ace/ext/searchbox").Search(editor, true)
getCursorScreenPosition = () ->
session = editor.getSession()
cursorPosition = session.selection.getCursor()
sessionPos = session.documentToScreenPosition(cursorPosition.row, cursorPosition.column)
screenPos = editor.renderer.textToScreenCoordinates(sessionPos.row, sessionPos.column)
return sessionPos.row * editor.renderer.lineHeight - session.getScrollTop()
if attrs.resizeOn? if attrs.resizeOn?
for event in attrs.resizeOn.split(",") for event in attrs.resizeOn.split(",")
scope.$on event, () -> scope.$on event, () ->
previousScreenPosition = getCursorScreenPosition()
editor.resize() editor.resize()
# Put cursor back to same vertical position on screen
newScreenPosition = getCursorScreenPosition()
session = editor.getSession()
session.setScrollTop(session.getScrollTop() + newScreenPosition - previousScreenPosition)
scope.$watch "theme", (value) -> scope.$watch "theme", (value) ->
editor.setTheme("ace/theme/#{value}") editor.setTheme("ace/theme/#{value}")