Skip to content

Commit

Permalink
Merge pull request mozilla#17907 from calixteman/fix_draw_ink
Browse files Browse the repository at this point in the history
[Editor] Don't add an already added editor (bug 1890367)
  • Loading branch information
timvandermeij authored Apr 8, 2024
2 parents fb21c42 + 976ee96 commit 30b65ca
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/display/editor/annotation_editor_layer.js
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,9 @@ class AnnotationEditorLayer {
* @param {AnnotationEditor} editor
*/
add(editor) {
if (editor.parent === this && editor.isAttachedToDOM) {
return;
}
this.changeParent(editor);
this.#uiManager.addEditor(editor);
this.attach(editor);
Expand Down
41 changes: 41 additions & 0 deletions test/integration/ink_editor_spec.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -459,4 +459,45 @@ describe("Ink Editor", () => {
);
});
});

describe("Draw several times in the same editor", () => {
let pages;

beforeAll(async () => {
pages = await loadAndWait("empty.pdf", ".annotationEditorLayer");
});

afterAll(async () => {
await closePages(pages);
});

it("must check that we can draw several times on the same canvas", async () => {
await Promise.all(
pages.map(async ([browserName, page]) => {
await page.click("#editorInk");
await page.waitForSelector(".annotationEditorLayer.inkEditing");

const rect = await page.$eval(".annotationEditorLayer", el => {
const { x, y } = el.getBoundingClientRect();
return { x, y };
});

let xStart = rect.x + 10;
const yStart = rect.y + 10;
for (let i = 0; i < 5; i++) {
const clickHandle = await waitForPointerUp(page);
await page.mouse.move(xStart, yStart);
await page.mouse.down();
await page.mouse.move(xStart + 50, yStart + 50);
await page.mouse.up();
await awaitPromise(clickHandle);
xStart += 70;
}
await commit(page);

await page.waitForSelector(getEditorSelector(0));
})
);
});
});
});

0 comments on commit 30b65ca

Please sign in to comment.