diff --git a/src/display/editor/annotation_editor_layer.js b/src/display/editor/annotation_editor_layer.js index 62401b91b..3df2e3a02 100644 --- a/src/display/editor/annotation_editor_layer.js +++ b/src/display/editor/annotation_editor_layer.js @@ -281,6 +281,10 @@ class AnnotationEditorLayer { editor.enableEditing(); } this.#isEnabling = false; + this.#uiManager._eventBus.dispatch("editorsrendered", { + source: this, + pageNumber: this.pageIndex + 1, + }); } /** @@ -745,8 +749,12 @@ class AnnotationEditorLayer { return editor; } + get boundingClientRect() { + return this.div.getBoundingClientRect(); + } + #getCenterPoint() { - const { x, y, width, height } = this.div.getBoundingClientRect(); + const { x, y, width, height } = this.boundingClientRect; const tlX = Math.max(0, x); const tlY = Math.max(0, y); const brX = Math.min(window.innerWidth, x + width); diff --git a/src/display/editor/tools.js b/src/display/editor/tools.js index 6a1239403..4cc92e8db 100644 --- a/src/display/editor/tools.js +++ b/src/display/editor/tools.js @@ -1078,18 +1078,18 @@ class AnnotationEditorUIManager { editor?.showComment(); } - async waitForPageRendered(pageNumber) { + async waitForEditorsRendered(pageNumber) { if (this.#allLayers.has(pageNumber - 1)) { return; } const { resolve, promise } = Promise.withResolvers(); - const onPageRendered = evt => { + const onEditorsRendered = evt => { if (evt.pageNumber === pageNumber) { - this._eventBus._off("annotationeditorlayerrendered", onPageRendered); + this._eventBus._off("editorsrendered", onEditorsRendered); resolve(); } }; - this._eventBus.on("annotationeditorlayerrendered", onPageRendered); + this._eventBus.on("editorsrendered", onEditorsRendered); await promise; } diff --git a/web/comment_manager.js b/web/comment_manager.js index 5d15247b5..c54e0dadd 100644 --- a/web/comment_manager.js +++ b/web/comment_manager.js @@ -670,7 +670,8 @@ class CommentSidebar { const { id, pageIndex, rect } = annotation; const SPACE_ABOVE_ANNOTATION = 10; const pageNumber = pageIndex + 1; - const pageVisiblePromise = this.#uiManager?.waitForPageRendered(pageNumber); + const pageVisiblePromise = + this.#uiManager?.waitForEditorsRendered(pageNumber); this.#linkService?.goToXY( pageNumber, rect[0],