[Editor] Unselect highlight editor when pressing Escape when the focus is on the color picker without a dropdown menu
This commit is contained in:
parent
dd3adc84db
commit
1859412507
@ -34,6 +34,8 @@ class ColorPicker {
|
|||||||
|
|
||||||
#isMainColorPicker = false;
|
#isMainColorPicker = false;
|
||||||
|
|
||||||
|
#editor = null;
|
||||||
|
|
||||||
#eventBus;
|
#eventBus;
|
||||||
|
|
||||||
#uiManager = null;
|
#uiManager = null;
|
||||||
@ -68,6 +70,7 @@ class ColorPicker {
|
|||||||
if (editor) {
|
if (editor) {
|
||||||
this.#isMainColorPicker = false;
|
this.#isMainColorPicker = false;
|
||||||
this.#type = AnnotationEditorParamsType.HIGHLIGHT_COLOR;
|
this.#type = AnnotationEditorParamsType.HIGHLIGHT_COLOR;
|
||||||
|
this.#editor = editor;
|
||||||
} else {
|
} else {
|
||||||
this.#isMainColorPicker = true;
|
this.#isMainColorPicker = true;
|
||||||
this.#type = AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR;
|
this.#type = AnnotationEditorParamsType.HIGHLIGHT_DEFAULT_COLOR;
|
||||||
@ -233,7 +236,13 @@ class ColorPicker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_hideDropdownFromKeyboard() {
|
_hideDropdownFromKeyboard() {
|
||||||
if (this.#isMainColorPicker || !this.#isDropdownVisible) {
|
if (this.#isMainColorPicker) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!this.#isDropdownVisible) {
|
||||||
|
// The user pressed Escape with no dropdown visible, so we must
|
||||||
|
// unselect it.
|
||||||
|
this.#editor?.unselect();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.hideDropdown();
|
this.hideDropdown();
|
||||||
|
@ -1366,4 +1366,36 @@ describe("Highlight Editor", () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("Editor must be unselected when the color picker is Escaped", () => {
|
||||||
|
let pages;
|
||||||
|
|
||||||
|
beforeAll(async () => {
|
||||||
|
pages = await loadAndWait("tracemonkey.pdf", ".annotationEditorLayer");
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async () => {
|
||||||
|
await closePages(pages);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("must check that the highlight editor is unselected", async () => {
|
||||||
|
await Promise.all(
|
||||||
|
pages.map(async ([browserName, page]) => {
|
||||||
|
await page.click("#editorHighlight");
|
||||||
|
await page.waitForSelector(".annotationEditorLayer.highlightEditing");
|
||||||
|
|
||||||
|
const rect = await getSpanRectFromText(page, 1, "Abstract");
|
||||||
|
const x = rect.x + rect.width / 2;
|
||||||
|
const y = rect.y + rect.height / 2;
|
||||||
|
await page.mouse.click(x, y, { count: 2, delay: 100 });
|
||||||
|
|
||||||
|
await page.waitForSelector(getEditorSelector(0));
|
||||||
|
await page.focus(`${getEditorSelector(0)} button.colorPicker`);
|
||||||
|
|
||||||
|
await page.keyboard.press("Escape");
|
||||||
|
await page.focus(`${getEditorSelector(0)}:not(selectedEditor)`);
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user