Selaa lähdekoodia

Merge pull request #903 from sharelatex/as-cursor-position-change-editor

Store cursor & line position when switching editor
Jessica Lawshe 8 vuotta sitten
vanhempi
sitoutus
f7e4750df6

+ 1 - 0
services/web/public/coffee/ide/editor/directives/aceEditor.coffee

@@ -516,6 +516,7 @@ define [
 
 				scope.$on '$destroy', () ->
 					if scope.sharejsDoc?
+						scope.$broadcast('changeEditor')
 						tearDownSpellCheck()
 						tearDownCursorPosition()
 						detachFromAce(scope.sharejsDoc)

+ 7 - 3
services/web/public/coffee/ide/editor/directives/aceEditor/cursor-position/CursorPositionManager.coffee

@@ -3,12 +3,12 @@ define [], () ->
 		constructor: (@$scope, @adapter, @localStorage) ->
 			@$scope.$on 'editorInit', @jumpToPositionInNewDoc
 
-			@$scope.$on 'beforeChangeDocument', () =>
-				@storeCursorPosition()
-				@storeFirstVisibleLine()
+			@$scope.$on 'beforeChangeDocument', @storePositionAndLine
 
 			@$scope.$on 'afterChangeDocument', @jumpToPositionInNewDoc
 
+			@$scope.$on 'changeEditor', @storePositionAndLine
+
 			@$scope.$on "#{@$scope.name}:gotoLine", (e, line, column) =>
 				if line?
 					setTimeout () =>
@@ -24,6 +24,10 @@ define [], () ->
 			@$scope.$on "#{@$scope.name}:clearSelection", (e) =>
 				@adapter.clearSelection()
 
+		storePositionAndLine: () =>
+			@storeCursorPosition()
+			@storeFirstVisibleLine()
+
 		jumpToPositionInNewDoc: () =>
 			@doc_id = @$scope.sharejsDoc?.doc_id
 			setTimeout () =>