From 5f9a9f58cef2c1a67d4601167339e3449d432e30 Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Fri, 20 Feb 2026 18:37:06 +0100 Subject: [PATCH] Only show the status bar in the views manager when it's in thumbnails mode (bug 2016656) --- test/integration/thumbnail_view_spec.mjs | 40 ++++++++++++++++++++++++ web/viewer.js | 1 + web/views_manager.js | 3 ++ 3 files changed, 44 insertions(+) diff --git a/test/integration/thumbnail_view_spec.mjs b/test/integration/thumbnail_view_spec.mjs index 6c18182d3..ae830a754 100644 --- a/test/integration/thumbnail_view_spec.mjs +++ b/test/integration/thumbnail_view_spec.mjs @@ -413,6 +413,46 @@ describe("PDF Thumbnail View", () => { }); }); + describe("Views manager status visibility (bug 2016656)", () => { + let pages; + + beforeEach(async () => { + pages = await loadAndWait( + "page_with_number_and_link.pdf", + "#viewsManagerToggleButton", + null, + null, + { enableSplitMerge: true } + ); + }); + + afterEach(async () => { + await closePages(pages); + }); + + it("should show the manage button in thumbnail view and hide it in outline view", async () => { + await Promise.all( + pages.map(async ([browserName, page]) => { + await page.click("#viewsManagerToggleButton"); + await waitForThumbnailVisible(page, 1); + + // The status bar (Select pages + Manage button) must be visible in + // thumbnail view. + await page.waitForSelector("#viewsManagerStatus", { visible: true }); + + // Switch to outline view. + await page.click("#viewsManagerSelectorButton"); + await page.waitForSelector("#outlinesViewMenu", { visible: true }); + await page.click("#outlinesViewMenu"); + await page.waitForSelector("#outlinesView", { visible: true }); + + // The status bar must no longer be visible in outline view. + await page.waitForSelector("#viewsManagerStatus", { hidden: true }); + }) + ); + }); + }); + describe("Checkbox keyboard navigation", () => { let pages; diff --git a/web/viewer.js b/web/viewer.js index 0e86d3c2d..7cba84a10 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -133,6 +133,7 @@ function getViewerConfiguration() { viewsManagerHeaderLabel: document.getElementById( "viewsManagerHeaderLabel" ), + viewsManagerStatus: document.getElementById("viewsManagerStatus"), manageMenu: { button: document.getElementById("viewsManagerStatusActionButton"), menu: document.getElementById("viewsManagerStatusActionOptions"), diff --git a/web/views_manager.js b/web/views_manager.js index 9c08e7fb4..f4eb38d1a 100644 --- a/web/views_manager.js +++ b/web/views_manager.js @@ -90,6 +90,7 @@ class ViewsManager extends Sidebar { viewsManagerSelectorButton, viewsManagerSelectorOptions, viewsManagerHeaderLabel, + viewsManagerStatus, }, eventBus, l10n, @@ -132,6 +133,7 @@ class ViewsManager extends Sidebar { this.viewsManagerCurrentOutlineButton = viewsManagerCurrentOutlineButton; this.viewsManagerHeaderLabel = viewsManagerHeaderLabel; + this.viewsManagerStatus = viewsManagerStatus; this.eventBus = eventBus; @@ -245,6 +247,7 @@ class ViewsManager extends Sidebar { return; } + this.viewsManagerStatus.hidden = view !== SidebarView.THUMBS; this.viewsManagerCurrentOutlineButton.hidden = view !== SidebarView.OUTLINE; this.viewsManagerHeaderLabel.setAttribute( "data-l10n-id",