1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-20 15:18:08 +02:00

[Editor] Don't use the editor parent which can be null.

An annotation editor layer can be destroyed when it's invisible, hence some
annotations can have a null parent but when printing/saving or when changing
font size, color, ... of all added annotations (when selected with ctrl+a) we
still need to have some parent properties especially the page dimensions, global
scale factor and global rotation angle.
This patch aims to remove all the references to the parent in the editor instances
except in some cases where an editor should obviously have one.
It fixes #15780.
This commit is contained in:
Calixte Denizet 2022-12-05 12:25:06 +01:00
parent feb6f5951c
commit b93bf9f654
9 changed files with 270 additions and 126 deletions

View file

@ -111,9 +111,7 @@ class DefaultAnnotationEditorLayerFactory {
* @property {HTMLDivElement} pageDiv
* @property {PDFPageProxy} pdfPage
* @property {IL10n} l10n
* @property {AnnotationStorage} [annotationStorage] - Storage for annotation
* @property {TextAccessibilityManager} [accessibilityManager]
* data in forms.
*/
/**
@ -126,7 +124,6 @@ class DefaultAnnotationEditorLayerFactory {
pdfPage,
accessibilityManager = null,
l10n,
annotationStorage = null,
}) {
return new AnnotationEditorLayerBuilder({
uiManager,
@ -134,7 +131,6 @@ class DefaultAnnotationEditorLayerFactory {
pdfPage,
accessibilityManager,
l10n,
annotationStorage,
});
}
}

View file

@ -237,9 +237,7 @@ class IPDFAnnotationEditorLayerFactory {
* @property {HTMLDivElement} pageDiv
* @property {PDFPageProxy} pdfPage
* @property {IL10n} l10n
* @property {AnnotationStorage} [annotationStorage] - Storage for annotation
* @property {TextAccessibilityManager} [accessibilityManager]
* data in forms.
*/
/**
@ -251,7 +249,6 @@ class IPDFAnnotationEditorLayerFactory {
pageDiv,
pdfPage,
l10n,
annotationStorage = null,
accessibilityManager,
}) {}
}

View file

@ -730,7 +730,8 @@ class PDFViewer {
} else if (isValidAnnotationEditorMode(mode)) {
this.#annotationEditorUIManager = new AnnotationEditorUIManager(
this.container,
this.eventBus
this.eventBus,
this.pdfDocument?.annotationStorage
);
if (mode !== AnnotationEditorType.NONE) {
this.#annotationEditorUIManager.updateMode(mode);
@ -1741,9 +1742,7 @@ class PDFViewer {
* @property {HTMLDivElement} pageDiv
* @property {PDFPageProxy} pdfPage
* @property {IL10n} l10n
* @property {AnnotationStorage} [annotationStorage] - Storage for annotation
* @property {TextAccessibilityManager} [accessibilityManager]
* data in forms.
*/
/**
@ -1756,13 +1755,11 @@ class PDFViewer {
pdfPage,
accessibilityManager = null,
l10n,
annotationStorage = this.pdfDocument?.annotationStorage,
}) {
return new AnnotationEditorLayerBuilder({
uiManager,
pageDiv,
pdfPage,
annotationStorage,
accessibilityManager,
l10n,
});