mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-05-28 19:41:33 +02:00
Refactor saving cursor position to not use Ace event
This is will help with triggering CM correctly
This commit is contained in:
@@ -308,6 +308,8 @@ define [
|
||||
editor.renderer.updateFontSize()
|
||||
|
||||
scope.$watch "sharejsDoc", (sharejs_doc, old_sharejs_doc) ->
|
||||
cursorPositionManager.onBeforeSessionChange(!!old_sharejs_doc)
|
||||
|
||||
if old_sharejs_doc?
|
||||
detachFromAce(old_sharejs_doc)
|
||||
|
||||
@@ -382,7 +384,6 @@ define [
|
||||
editor.off 'nativecontextmenu', spellCheckManager.onContextMenu
|
||||
|
||||
onSessionChangeForCursorPosition = (e) ->
|
||||
cursorPositionManager.onSessionChange(e)
|
||||
e.oldSession?.selection.off 'changeCursor', cursorPositionManager.onCursorChange
|
||||
e.session.selection.on 'changeCursor', cursorPositionManager.onCursorChange
|
||||
|
||||
|
||||
@@ -19,9 +19,9 @@ define [], () ->
|
||||
init: () ->
|
||||
@emitCursorUpdateEvent()
|
||||
|
||||
onSessionChange: (e) =>
|
||||
if e.oldSession?
|
||||
@storeCursorPosition(e.oldSession)
|
||||
onBeforeSessionChange: (hasPrevSession = false) =>
|
||||
if hasPrevSession
|
||||
@storeCursorPosition()
|
||||
@storeFirstVisibleLine()
|
||||
|
||||
@doc_id = @$scope.sharejsDoc?.doc_id
|
||||
@@ -30,8 +30,8 @@ define [], () ->
|
||||
@gotoStoredPosition()
|
||||
, 0
|
||||
|
||||
onUnload: (session) =>
|
||||
@storeCursorPosition(session)
|
||||
onUnload: () =>
|
||||
@storeCursorPosition()
|
||||
@storeFirstVisibleLine()
|
||||
|
||||
onCursorChange: () =>
|
||||
@@ -43,10 +43,10 @@ define [], () ->
|
||||
docPosition.firstVisibleLine = @adapter.getEditorScrollPosition()
|
||||
@localStorage("doc.position.#{@doc_id}", docPosition)
|
||||
|
||||
storeCursorPosition: (session) ->
|
||||
storeCursorPosition: () ->
|
||||
if @doc_id?
|
||||
docPosition = @localStorage("doc.position.#{@doc_id}") || {}
|
||||
docPosition.cursorPosition = @adapter.getCursorForSession(session)
|
||||
docPosition.cursorPosition = @adapter.getCursor()
|
||||
@localStorage("doc.position.#{@doc_id}", docPosition)
|
||||
|
||||
emitCursorUpdateEvent: () ->
|
||||
|
||||
Reference in New Issue
Block a user