Skip to content

Commit

Permalink
[Editor] Enable the thickness input when no editors are selected (bug 1…
Browse files Browse the repository at this point in the history
  • Loading branch information
calixteman committed Feb 29, 2024
1 parent 7cc34cf commit ed2d0fa
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/display/editor/tools.js
Original file line number Diff line number Diff line change
Expand Up @@ -1296,6 +1296,17 @@ class AnnotationEditorUIManager {
source: this,
details: Object.assign(this.#previousStates, details),
});
// We could listen on our own event but it sounds like a bit weird and
// it's a way to simpler to handle that stuff here instead of having to
// add something in every place where an editor can be unselected.
if (
this.#mode === AnnotationEditorType.HIGHLIGHT &&
details.hasSelectedEditor === false
) {
this.#dispatchUpdateUI([
[AnnotationEditorParamsType.HIGHLIGHT_FREE, true],
]);
}
}
}

Expand Down
63 changes: 63 additions & 0 deletions test/integration/highlight_editor_spec.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1231,4 +1231,67 @@ describe("Highlight Editor", () => {
);
});
});

describe("Thickness must be enabled when there's no selected highlights", () => {
let pages;

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

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

it("must check the thickness input state", async () => {
await Promise.all(
pages.map(async ([browserName, page]) => {
await page.click("#editorHighlight");
await page.waitForSelector(".annotationEditorLayer.highlightEditing");

let rect = await getSpanRectFromText(page, 1, "Abstract");
await page.mouse.click(
rect.x + rect.width / 2,
rect.y + rect.height / 2,
{ count: 2, delay: 100 }
);

await page.waitForSelector(getEditorSelector(0));

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

const clickHandle = await waitForPointerUp(page);
await page.mouse.move(rect.x + 120, rect.y + 120);
await page.mouse.down();
await page.mouse.move(rect.x + 220, rect.y + 220);
await page.mouse.up();
await awaitPromise(clickHandle);

await page.waitForSelector(getEditorSelector(1));
await page.waitForSelector(
"#editorFreeHighlightThickness:not([disabled])"
);

await page.click(getEditorSelector(0));
await page.waitForSelector(getEditorSelector(0));
await page.waitForSelector("#editorFreeHighlightThickness[disabled]");

await page.click("#editorHighlight");
await page.waitForSelector(
".annotationEditorLayer:not(.highlightEditing)"
);

await page.click("#editorHighlight");
await page.waitForSelector(".annotationEditorLayer.highlightEditing");

await page.waitForSelector(
"#editorFreeHighlightThickness:not([disabled])"
);
})
);
});
});
});

0 comments on commit ed2d0fa

Please sign in to comment.