diff --git a/src/display/editor/annotation_editor_layer.js b/src/display/editor/annotation_editor_layer.js index b4c1b4e79..cb07e47e7 100644 --- a/src/display/editor/annotation_editor_layer.js +++ b/src/display/editor/annotation_editor_layer.js @@ -426,7 +426,6 @@ class AnnotationEditorLayer { */ add(editor) { this.#changeParent(editor); - this.addToAnnotationStorage(editor); this.#uiManager.addEditor(editor); this.attach(editor); @@ -438,6 +437,7 @@ class AnnotationEditorLayer { this.moveDivInDOM(editor); editor.onceAdded(); + this.addToAnnotationStorage(editor); } /** diff --git a/test/integration/freetext_editor_spec.js b/test/integration/freetext_editor_spec.js index 042ba06c7..e66ee7258 100644 --- a/test/integration/freetext_editor_spec.js +++ b/test/integration/freetext_editor_spec.js @@ -32,6 +32,11 @@ describe("Editor", () => { await closePages(pages); }); + const countStorageEntries = async page => + page.evaluate( + () => window.PDFViewerApplication.pdfDocument.annotationStorage.size + ); + it("must write a string in a FreeText editor", async () => { await Promise.all( pages.map(async ([browserName, page]) => { @@ -64,6 +69,10 @@ describe("Editor", () => { editorRect.y + 2 * editorRect.height ); + expect(await countStorageEntries(page)) + .withContext(`In ${browserName}`) + .toEqual(1); + const content = await page.$eval(`${editorPrefix}0`, el => el.innerText.trimEnd() ); @@ -94,6 +103,10 @@ describe("Editor", () => { await page.keyboard.press("v"); await page.keyboard.up("Control"); + expect(await countStorageEntries(page)) + .withContext(`In ${browserName}`) + .toEqual(2); + const content = await page.$eval(`${editorPrefix}0`, el => el.innerText.trimEnd() ); @@ -114,6 +127,10 @@ describe("Editor", () => { await page.keyboard.press("v"); await page.keyboard.up("Control"); + expect(await countStorageEntries(page)) + .withContext(`In ${browserName}`) + .toEqual(3); + pastedContent = await page.$eval(`${editorPrefix}2`, el => el.innerText.trimEnd() ); @@ -142,6 +159,10 @@ describe("Editor", () => { expect(hasEditor).withContext(`In ${browserName}`).toEqual(false); } + + expect(await countStorageEntries(page)) + .withContext(`In ${browserName}`) + .toEqual(0); }) ); });