From eb014a36cccc7312ab02000d214a618a81b6f79e Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Fri, 16 Jan 2026 19:54:14 +0100 Subject: [PATCH] Select the dropped thumbnail (bug 2010820) --- test/integration/reorganize_pages_spec.mjs | 30 ++++++++++++++++++++++ web/pdf_thumbnail_viewer.js | 10 ++++++++ 2 files changed, 40 insertions(+) diff --git a/test/integration/reorganize_pages_spec.mjs b/test/integration/reorganize_pages_spec.mjs index 7c0aee17bd6b3..2f06b40fa348a 100644 --- a/test/integration/reorganize_pages_spec.mjs +++ b/test/integration/reorganize_pages_spec.mjs @@ -231,5 +231,35 @@ describe("Reorganize Pages View", () => { }) ); }); + + it("should select the dropped page (bug 2010820)", async () => { + await Promise.all( + pages.map(async ([browserName, page]) => { + await waitForThumbnailVisible(page, 1); + const rect1 = await getRect(page, getThumbnailSelector(1)); + const rect2 = await getRect(page, getThumbnailSelector(2)); + + await page.click(getThumbnailSelector(2)); + await page.waitForSelector( + `${getThumbnailSelector(2)}[aria-current="page"]` + ); + + const handlePagesEdited = await waitForPagesEdited(page); + await dragAndDrop( + page, + getThumbnailSelector(1), + [[0, rect2.y - rect1.y + rect2.height / 2]], + 10 + ); + await awaitPromise(handlePagesEdited); + await page.waitForSelector( + `${getThumbnailSelector(2)}[aria-current="false"]` + ); + await page.waitForSelector( + `${getThumbnailSelector(1)}[aria-current="page"]` + ); + }) + ); + }); }); }); diff --git a/web/pdf_thumbnail_viewer.js b/web/pdf_thumbnail_viewer.js index 0c05d5178bd79..661a2800ec73d 100644 --- a/web/pdf_thumbnail_viewer.js +++ b/web/pdf_thumbnail_viewer.js @@ -487,6 +487,11 @@ class PDFThumbnailViewer { const N = thumbnails.length; pagesMapper.pagesNumber = N; const currentPageId = pagesMapper.getPageId(this._currentPageNumber); + const newCurrentPageId = pagesMapper.getPageId( + isNaN(this.#pageNumberToRemove) + ? pagesToMove[0] + : this.#pageNumberToRemove + ); // Move the thumbnails in the DOM. let thumbnail = thumbnails[pagesToMove[0] - 1]; @@ -532,6 +537,11 @@ class PDFThumbnailViewer { index: newIndex, pagesToMove, }); + + const newCurrentPageNumber = pagesMapper.getPageNumber(newCurrentPageId); + setTimeout(() => { + this.linkService.goToPage(newCurrentPageNumber); + }, 0); } if (!isNaN(this.#pageNumberToRemove)) {