From 9c78422efad503659f0767b895e3ca8402f526fb Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Fri, 24 Mar 2023 12:07:23 +0000 Subject: [PATCH] Jump to line after the stored scroll position has been restored (#12324) GitOrigin-RevId: 82265c6b0cab1ed3a34343efc5d47648e72dc41e --- .../frontend/js/ide/editor/EditorManager.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/services/web/frontend/js/ide/editor/EditorManager.js b/services/web/frontend/js/ide/editor/EditorManager.js index a6a1b333fb..8a6fdd9cb5 100644 --- a/services/web/frontend/js/ide/editor/EditorManager.js +++ b/services/web/frontend/js/ide/editor/EditorManager.js @@ -281,14 +281,19 @@ export default EditorManager = (function () { // allow Ace to display document before moving, delay until next tick // added delay to make this happen later that gotoStoredPosition in // CursorPositionManager - return setTimeout(() => this.jumpToLine(options), 0) - } else if (options.gotoOffset != null) { - return setTimeout(() => { - return this.$scope.$broadcast( - 'editor:gotoOffset', - options.gotoOffset + setTimeout(() => this.jumpToLine(options)) + // when opening a doc in CM6, jump to the line again after a stored scroll position has been restored + if (isNewDoc) { + window.addEventListener( + 'editor:scroll-position-restored', + () => this.jumpToLine(options), + { once: true } ) - }, 0) + } + } else if (options.gotoOffset != null) { + setTimeout(() => { + this.$scope.$broadcast('editor:gotoOffset', options.gotoOffset) + }) } }