Pointer type initialization only when the user changes the mode

Clear the pointer type of CurrentPointers outside of the DrawingEditor to always keep the same, until the user changes the mode.
One of the goal is to keep the same pointer type in case of a refresh of the page or if the user changes the pdf document.
This commit is contained in:
legraina 2025-11-02 08:55:50 -05:00
parent 2cc809ade2
commit 396cff5652
No known key found for this signature in database
GPG Key ID: 1B9D3DE90074C751
3 changed files with 9 additions and 1 deletions

View File

@ -824,7 +824,6 @@ class DrawingEditor extends AnnotationEditor {
this._currentParent = null;
DrawingEditor.#currentDraw = null;
DrawingEditor.#currentDrawingOptions = null;
CurrentPointers.clearPointerType();
CurrentPointers.clearTimeStamp();
}

View File

@ -1923,6 +1923,8 @@ class AnnotationEditorUIManager {
* Change the editor mode (None, FreeText, Ink, ...)
* @param {number} mode
* @param {string|null} editId
* @param {boolean} [isFromUser] - true if the mode change is due to a
* user action.
* @param {boolean} [isFromKeyboard] - true if the mode change is due to a
* keyboard action.
* @param {boolean} [mustEnterInEditMode] - true if the editor must enter in
@ -1933,6 +1935,7 @@ class AnnotationEditorUIManager {
async updateMode(
mode,
editId = null,
isFromUser = false,
isFromKeyboard = false,
mustEnterInEditMode = false,
editComment = false
@ -1980,6 +1983,11 @@ class AnnotationEditorUIManager {
await this.#signatureManager?.loadSignatures();
}
if (isFromUser) {
// reinitialize the pointer type when the mode is changed by the user
CurrentPointers.clearPointerType();
}
this.setEditingState(true);
await this.#enableAll();
this.unselectAll();

View File

@ -2501,6 +2501,7 @@ class PDFViewer {
await this.#annotationEditorUIManager.updateMode(
mode,
editId,
/* isFromUser = */ true,
isFromKeyboard,
mustEnterInEditMode,
editComment