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; this._currentParent = null;
DrawingEditor.#currentDraw = null; DrawingEditor.#currentDraw = null;
DrawingEditor.#currentDrawingOptions = null; DrawingEditor.#currentDrawingOptions = null;
CurrentPointers.clearPointerType();
CurrentPointers.clearTimeStamp(); CurrentPointers.clearTimeStamp();
} }

View File

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

View File

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