diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor.coffee index e3ab0b29be..015a4e65ee 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor.coffee +++ b/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) diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/cursor-position/CursorPositionManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/cursor-position/CursorPositionManager.coffee index bb957f8cf6..764fcb1c98 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/cursor-position/CursorPositionManager.coffee +++ b/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 () =>