[Editor] Make the annotation editor layer invisible when disabled and empty

It'll help to avoid to consider them when the browser is restyling.
This commit is contained in:
Calixte Denizet 2023-01-27 22:54:32 +01:00
parent 2d87a2eb1c
commit 185281957d
2 changed files with 22 additions and 6 deletions

View File

@ -84,6 +84,10 @@ class AnnotationEditorLayer {
this.#uiManager.addLayer(this);
}
get isEmpty() {
return this.#editors.size === 0;
}
/**
* Update the toolbar if it's required to reflect the tool currently used.
* @param {number} mode
@ -107,11 +111,17 @@ class AnnotationEditorLayer {
}
this.#uiManager.unselectAll();
this.div.classList.toggle(
"freeTextEditing",
mode === AnnotationEditorType.FREETEXT
);
this.div.classList.toggle("inkEditing", mode === AnnotationEditorType.INK);
if (mode !== AnnotationEditorType.NONE) {
this.div.classList.toggle(
"freeTextEditing",
mode === AnnotationEditorType.FREETEXT
);
this.div.classList.toggle(
"inkEditing",
mode === AnnotationEditorType.INK
);
this.div.hidden = false;
}
}
addInkEditorIfNeeded(isCommitting) {
@ -172,6 +182,10 @@ class AnnotationEditorLayer {
for (const editor of this.#editors.values()) {
editor.disableEditing();
}
this.#cleanup();
if (this.isEmpty) {
this.div.hidden = true;
}
}
/**

View File

@ -75,6 +75,7 @@ class AnnotationEditorLayerBuilder {
const div = (this.div = document.createElement("div"));
div.className = "annotationEditorLayer";
div.tabIndex = 0;
div.hidden = true;
this.pageDiv.append(div);
this.annotationEditorLayer = new AnnotationEditorLayer({
@ -94,6 +95,7 @@ class AnnotationEditorLayerBuilder {
};
this.annotationEditorLayer.render(parameters);
this.show();
}
cancel() {
@ -115,7 +117,7 @@ class AnnotationEditorLayerBuilder {
}
show() {
if (!this.div) {
if (!this.div || this.annotationEditorLayer.isEmpty) {
return;
}
this.div.hidden = false;