diff --git a/src/activities/reader/EpubReaderActivity.cpp b/src/activities/reader/EpubReaderActivity.cpp index ca608eaa..a5329290 100644 --- a/src/activities/reader/EpubReaderActivity.cpp +++ b/src/activities/reader/EpubReaderActivity.cpp @@ -338,11 +338,21 @@ void EpubReaderActivity::loop() { } if (longPress && SETTINGS.longPressButtonBehavior == SETTINGS.CHAPTER_SKIP) { + if (!nextTriggered && section && section->currentPage > 0) { + section->currentPage = 0; + requestUpdate(); + return; + } + // We don't want to delete the section mid-render, so grab the semaphore { RenderLock lock(*this); nextPageNumber = 0; - currentSpineIndex = nextTriggered ? currentSpineIndex + 1 : currentSpineIndex - 1; + if (nextTriggered) { + currentSpineIndex++; + } else if (currentSpineIndex > 0) { + currentSpineIndex--; + } section.reset(); } requestUpdate();