[Editor] Show hidden annotations once editing is finished
This commit is contained in:
parent
04c31a55d2
commit
ae3cee95a6
@ -215,14 +215,32 @@ class AnnotationEditorLayer {
|
||||
disable() {
|
||||
this.#isDisabling = true;
|
||||
this.div.style.pointerEvents = "none";
|
||||
const hiddenAnnotationIds = new Set();
|
||||
for (const editor of this.#editors.values()) {
|
||||
editor.disableEditing();
|
||||
if (!editor.annotationElementId || editor.serialize() !== null) {
|
||||
hiddenAnnotationIds.add(editor.annotationElementId);
|
||||
continue;
|
||||
}
|
||||
this.getEditableAnnotation(editor.annotationElementId)?.show();
|
||||
editor.remove();
|
||||
}
|
||||
|
||||
if (this.#annotationLayer) {
|
||||
// Show the annotations that were hidden in enable().
|
||||
const editables = this.#annotationLayer.getEditableAnnotations();
|
||||
for (const editable of editables) {
|
||||
const { id } = editable.data;
|
||||
if (
|
||||
hiddenAnnotationIds.has(id) ||
|
||||
this.#uiManager.isDeletedAnnotationElement(id)
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
editable.show();
|
||||
}
|
||||
}
|
||||
|
||||
this.#cleanup();
|
||||
if (this.isEmpty) {
|
||||
this.div.hidden = true;
|
||||
|
@ -431,4 +431,41 @@ describe("ResetForm action", () => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("Ink widget and its popup after editing", () => {
|
||||
describe("annotation-caret-ink.pdf", () => {
|
||||
let pages;
|
||||
|
||||
beforeAll(async () => {
|
||||
pages = await loadAndWait(
|
||||
"annotation-caret-ink.pdf",
|
||||
"[data-annotation-id='25R']"
|
||||
);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await closePages(pages);
|
||||
});
|
||||
|
||||
it("must check that the annotation has a popup", async () => {
|
||||
await Promise.all(
|
||||
pages.map(async ([browserName, page]) => {
|
||||
await page.waitForFunction(
|
||||
`document.querySelector("[data-annotation-id='25R']").hidden === false`
|
||||
);
|
||||
await page.click("#editorFreeText");
|
||||
await page.waitForTimeout(10);
|
||||
await page.waitForFunction(
|
||||
`document.querySelector("[data-annotation-id='25R']").hidden === true`
|
||||
);
|
||||
await page.click("#editorFreeText");
|
||||
await page.waitForTimeout(10);
|
||||
await page.waitForFunction(
|
||||
`document.querySelector("[data-annotation-id='25R']").hidden === false`
|
||||
);
|
||||
})
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user