From d8334e9fa459c7d6b81a8182fadfbbc8719a258a Mon Sep 17 00:00:00 2001 From: nscheung <6036668+nscheung@users.noreply.github.com> Date: Tue, 17 Mar 2026 21:32:24 -0700 Subject: [PATCH] Adjust navigation at end of book to home page on forward press (cherry picked from commit deb6ff3b9d1a284594540513f19a3191936915c9) --- src/activities/reader/EpubReaderActivity.cpp | 12 ++++++++---- src/activities/reader/TxtReaderActivity.cpp | 11 ++++++++--- src/activities/reader/XtcReaderActivity.cpp | 10 +++++++--- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/activities/reader/EpubReaderActivity.cpp b/src/activities/reader/EpubReaderActivity.cpp index 5b1f0148..5c884e5a 100644 --- a/src/activities/reader/EpubReaderActivity.cpp +++ b/src/activities/reader/EpubReaderActivity.cpp @@ -205,11 +205,15 @@ void EpubReaderActivity::loop() { return; } - // any botton press when at end of the book goes back to the last page + // At end of the book, forward button goes home and back button returns to last page if (currentSpineIndex > 0 && currentSpineIndex >= epub->getSpineItemsCount()) { - currentSpineIndex = epub->getSpineItemsCount() - 1; - nextPageNumber = UINT16_MAX; - requestUpdate(); + if (nextTriggered) { + onGoHome(); + } else { + currentSpineIndex = epub->getSpineItemsCount() - 1; + nextPageNumber = UINT16_MAX; + requestUpdate(); + } return; } diff --git a/src/activities/reader/TxtReaderActivity.cpp b/src/activities/reader/TxtReaderActivity.cpp index 94ace06b..d2df6dc7 100644 --- a/src/activities/reader/TxtReaderActivity.cpp +++ b/src/activities/reader/TxtReaderActivity.cpp @@ -138,9 +138,14 @@ void TxtReaderActivity::loop() { if (prevTriggered && currentPage > 0) { currentPage--; requestUpdate(); - } else if (nextTriggered && currentPage < totalPages - 1) { - currentPage++; - requestUpdate(); + } else if (nextTriggered) { + if (currentPage < totalPages - 1) { + currentPage++; + requestUpdate(); + } else { + onGoHome(); + return; + } } } diff --git a/src/activities/reader/XtcReaderActivity.cpp b/src/activities/reader/XtcReaderActivity.cpp index 385fe6f7..861b7422 100644 --- a/src/activities/reader/XtcReaderActivity.cpp +++ b/src/activities/reader/XtcReaderActivity.cpp @@ -98,10 +98,14 @@ void XtcReaderActivity::loop() { return; } - // Handle end of book + // At end of the book, forward button goes home and back button returns to last page if (currentPage >= xtc->getPageCount()) { - currentPage = xtc->getPageCount() - 1; - requestUpdate(); + if (nextTriggered) { + onGoHome(); + } else { + currentPage = xtc->getPageCount() - 1; + requestUpdate(); + } return; }