From f696b9a573005bed5690794a578b0c7d05b199d2 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Fri, 10 Oct 2025 13:56:41 +0800 Subject: [PATCH] fix: handle scrolling/panning in zoomed in PDFs, closes #2184 (#2194) --- .../reader/components/notebook/Notebook.tsx | 3 +- .../app/reader/components/sidebar/SideBar.tsx | 29 +++++++++---------- .../src/app/reader/hooks/usePagination.ts | 10 +++++-- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/apps/readest-app/src/app/reader/components/notebook/Notebook.tsx b/apps/readest-app/src/app/reader/components/notebook/Notebook.tsx index 1236714a..8fda174d 100644 --- a/apps/readest-app/src/app/reader/components/notebook/Notebook.tsx +++ b/apps/readest-app/src/app/reader/components/notebook/Notebook.tsx @@ -231,8 +231,7 @@ const Notebook: React.FC = ({}) => { `}
+
{isMobile && (
)} -
) : null; diff --git a/apps/readest-app/src/app/reader/hooks/usePagination.ts b/apps/readest-app/src/app/reader/hooks/usePagination.ts index df6424f1..01d1015a 100644 --- a/apps/readest-app/src/app/reader/hooks/usePagination.ts +++ b/apps/readest-app/src/app/reader/hooks/usePagination.ts @@ -115,7 +115,11 @@ export const usePagination = ( } } } - } else if (msg.data.type === 'iframe-wheel' && !viewSettings.scrolled) { + } else if ( + msg.data.type === 'iframe-wheel' && + !viewSettings.scrolled && + (!bookData.isFixedLayout || viewSettings.zoomLevel <= 100) + ) { // The wheel event is handled by the iframe itself in scrolled mode. const { deltaY } = msg.data; if (deltaY > 0) { @@ -143,8 +147,8 @@ export const usePagination = ( } } else if ( msg.type === 'touch-swipe' && - bookData.bookDoc?.rendition?.layout === 'pre-paginated' && - viewSettings?.zoomLevel === 100 + bookData.isFixedLayout && + viewSettings!.zoomLevel <= 100 ) { const { deltaX, deltaY } = msg.detail; if (Math.abs(deltaX) > Math.abs(deltaY) && Math.abs(deltaX) > 30) {