From be039ff09b6b78fb8b418b2f006ac984c1d39234 Mon Sep 17 00:00:00 2001 From: jpirnay Date: Tue, 19 May 2026 11:22:05 +0200 Subject: [PATCH] Review comments --- src/activities/reader/EpubReaderActivity.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/activities/reader/EpubReaderActivity.cpp b/src/activities/reader/EpubReaderActivity.cpp index 155cb792..727db1bd 100644 --- a/src/activities/reader/EpubReaderActivity.cpp +++ b/src/activities/reader/EpubReaderActivity.cpp @@ -613,6 +613,8 @@ void EpubReaderActivity::onReaderMenuConfirm(EpubReaderMenuActivity::MenuAction : std::nullopt; if (resolvedPage) { section->currentPage = *resolvedPage; + forceLoadLargeImages = false; + pageHasPlaceholders = false; } else { navTarget = chapter.tocIndex ? NavigationTarget::makeTocIndex(*chapter.tocIndex) : NavigationTarget::makePage(0); @@ -1716,6 +1718,8 @@ void EpubReaderActivity::render(RenderLock&& lock) { navTarget.resolveInto(*section, currentSpineIndex); navTarget = NavigationTarget::makePage(section->currentPage); + forceLoadLargeImages = false; + pageHasPlaceholders = false; } renderer.clearScreen(); @@ -1876,6 +1880,9 @@ void EpubReaderActivity::renderContents(std::unique_ptr page, const int or } lastRenderStats.textAntiAliasing = aaEnabledForThisRender; + const bool effectiveForceLoad = forceLoadLargeImages || !SETTINGS.largeImagePlaceholder; + pageHasPlaceholders = page->hasPlaceholderImages(effectiveForceLoad); + // Force special handling for pages with real (non-placeholder) images when anti-aliasing is on bool imagePageWithAA = page->hasImages() && !pageHasPlaceholders && aaEnabledForThisRender; bool forceHalfRefreshThisPage = pendingHalfRefreshAfterImagePage && SETTINGS.halfRefreshAfterImagePage; @@ -1883,9 +1890,6 @@ void EpubReaderActivity::renderContents(std::unique_ptr page, const int or lastRenderStats.imagePageWithAA = imagePageWithAA; lastRenderStats.forcedHalfRefresh = forceHalfRefreshThisPage; - const bool effectiveForceLoad = forceLoadLargeImages || !SETTINGS.largeImagePlaceholder; - pageHasPlaceholders = page->hasPlaceholderImages(effectiveForceLoad); - logReaderMemSnapshot("before_bw_render"); page->render(renderer, getEffectiveReaderFontId(), orientedMarginLeft, contentTop, effectiveForceLoad); renderStatusBar(); @@ -2369,6 +2373,8 @@ void EpubReaderActivity::onButtonAction(const CrossPointSettings::BUTTON_ACTION : std::nullopt; if (resolvedPage) { section->currentPage = *resolvedPage; + forceLoadLargeImages = false; + pageHasPlaceholders = false; } else { navTarget = chapter.tocIndex ? NavigationTarget::makeTocIndex(*chapter.tocIndex) : NavigationTarget::makePage(0); @@ -2395,6 +2401,8 @@ void EpubReaderActivity::onButtonAction(const CrossPointSettings::BUTTON_ACTION if (newSpineIndex == currentSpineIndex) { if (const auto resolvedPage = section->getPageForTocIndex(nextTocIndex)) { section->currentPage = *resolvedPage; + forceLoadLargeImages = false; + pageHasPlaceholders = false; } } else { navTarget = NavigationTarget::makeTocIndex(nextTocIndex);