diff --git a/web/app.js b/web/app.js index 252d6fa21..b009ad9f8 100644 --- a/web/app.js +++ b/web/app.js @@ -179,6 +179,9 @@ let PDFViewerApplication = { preferences.get('sidebarViewOnLoad').then(function resolved(value) { AppOptions.set('sidebarViewOnLoad', value); }), + preferences.get('cursorToolOnLoad').then(function resolved(value) { + AppOptions.set('cursorToolOnLoad', value); + }), preferences.get('pdfBugEnabled').then(function resolved(value) { AppOptions.set('pdfBugEnabled', value); }), @@ -434,7 +437,7 @@ let PDFViewerApplication = { this.pdfCursorTools = new PDFCursorTools({ container, eventBus, - preferences: this.preferences, + cursorToolOnLoad: AppOptions.get('cursorToolOnLoad'), }); this.toolbar = new Toolbar(appConfig.toolbar, container, eventBus, diff --git a/web/app_options.js b/web/app_options.js index c851c9a76..8fdd20a60 100644 --- a/web/app_options.js +++ b/web/app_options.js @@ -28,6 +28,11 @@ const OptionKind = { * compare with the format of `default_preferences.json`. */ const defaultOptions = { + cursorToolOnLoad: { + /** @type {number} */ + value: 0, + kind: OptionKind.VIEWER, + }, defaultUrl: { /** @type {string} */ value: 'compressed.tracemonkey-pldi-09.pdf', diff --git a/web/pdf_cursor_tools.js b/web/pdf_cursor_tools.js index 1e4108994..8d230a598 100644 --- a/web/pdf_cursor_tools.js +++ b/web/pdf_cursor_tools.js @@ -25,15 +25,16 @@ const CursorTool = { * @typedef {Object} PDFCursorToolsOptions * @property {HTMLDivElement} container - The document container. * @property {EventBus} eventBus - The application event bus. - * @property {BasePreferences} preferences - Object for reading/writing - * persistent settings. + * @property {number} cursorToolOnLoad - (optional) The cursor tool that will be + * enabled on load; the constants from {CursorTool} should be used. + * The default value is `CursorTool.SELECT`. */ class PDFCursorTools { /** * @param {PDFCursorToolsOptions} options */ - constructor({ container, eventBus, preferences, }) { + constructor({ container, eventBus, cursorToolOnLoad = CursorTool.SELECT, }) { this.container = container; this.eventBus = eventBus; @@ -46,9 +47,9 @@ class PDFCursorTools { this._addEventListeners(); - preferences.get('cursorToolOnLoad').then((value) => { - this.switchTool(value); - }).catch(() => { }); + Promise.resolve().then(() => { + this.switchTool(cursorToolOnLoad); + }); } /**