diff --git a/web/app.js b/web/app.js index 1ade1c694..4c6b31e67 100644 --- a/web/app.js +++ b/web/app.js @@ -1281,28 +1281,20 @@ const PDFViewerApplication = { spreadMode = stored.spreadMode | 0; } } - // NOTE: Ignore the pageMode/pageLayout in GeckoView since there's no - // sidebar available, nor any UI for changing the Scroll/Spread modes. + // Always let the user preference/view history take precedence. + if (pageMode && sidebarView === SidebarView.UNKNOWN) { + sidebarView = apiPageModeToSidebarView(pageMode); + } if ( - typeof PDFJSDev === "undefined" - ? !window.isGECKOVIEW - : !PDFJSDev.test("GECKOVIEW") + pageLayout && + scrollMode === ScrollMode.UNKNOWN && + spreadMode === SpreadMode.UNKNOWN ) { - // Always let the user preference/view history take precedence. - if (pageMode && sidebarView === SidebarView.UNKNOWN) { - sidebarView = apiPageModeToSidebarView(pageMode); - } - if ( - pageLayout && - scrollMode === ScrollMode.UNKNOWN && - spreadMode === SpreadMode.UNKNOWN - ) { - const modes = apiPageLayoutToViewerModes(pageLayout); - // TODO: Try to improve page-switching when using the mouse-wheel - // and/or arrow-keys before allowing the document to control this. - // scrollMode = modes.scrollMode; - spreadMode = modes.spreadMode; - } + const modes = apiPageLayoutToViewerModes(pageLayout); + // TODO: Try to improve page-switching when using the mouse-wheel + // and/or arrow-keys before allowing the document to control this. + // scrollMode = modes.scrollMode; + spreadMode = modes.spreadMode; } this.setInitialView(hash, { diff --git a/web/pdf_scripting_manager.js b/web/pdf_scripting_manager.js index 21ee3a997..f0c55b16c 100644 --- a/web/pdf_scripting_manager.js +++ b/web/pdf_scripting_manager.js @@ -265,21 +265,13 @@ class PDFScriptingManager { case "error": console.error(value); break; - case "layout": { - // NOTE: Always ignore the pageLayout in GeckoView since there's - // no UI available to change Scroll/Spread modes for the user. - if ( - (typeof PDFJSDev === "undefined" - ? window.isGECKOVIEW - : PDFJSDev.test("GECKOVIEW")) || - isInPresentationMode - ) { + case "layout": + if (isInPresentationMode) { return; } const modes = apiPageLayoutToViewerModes(value); this._pdfViewer.spreadMode = modes.spreadMode; break; - } case "page-num": this._pdfViewer.currentPageNumber = value + 1; break; diff --git a/web/pdf_viewer.js b/web/pdf_viewer.js index fdf3a429f..103937a50 100644 --- a/web/pdf_viewer.js +++ b/web/pdf_viewer.js @@ -1842,6 +1842,15 @@ class PDFViewer { * The constants from {ScrollMode} should be used. */ set scrollMode(mode) { + if ( + typeof PDFJSDev === "undefined" + ? window.isGECKOVIEW + : PDFJSDev.test("GECKOVIEW") + ) { + // NOTE: Always ignore the pageLayout in GeckoView since there's + // no UI available to change Scroll/Spread modes for the user. + return; + } if (this._scrollMode === mode) { return; // The Scroll mode didn't change. } @@ -1903,6 +1912,15 @@ class PDFViewer { * The constants from {SpreadMode} should be used. */ set spreadMode(mode) { + if ( + typeof PDFJSDev === "undefined" + ? window.isGECKOVIEW + : PDFJSDev.test("GECKOVIEW") + ) { + // NOTE: Always ignore the pageLayout in GeckoView since there's + // no UI available to change Scroll/Spread modes for the user. + return; + } if (this._spreadMode === mode) { return; // The Spread mode didn't change. }