fix(reader): enable swipe chapter navigation for single-page EPUB content#655
Merged
fix(reader): enable swipe chapter navigation for single-page EPUB content#655
Conversation
…tent When an EPUB chapter contains only a single image (or any content fitting one page), the paged scroll view's content size equals its bounds, so the scroll view has nothing to scroll. This means scrollViewWillEndDragging never fires with meaningful velocity, preventing swipe-based chapter navigation. Setting alwaysBounceHorizontal allows the rubber-band drag even on single-page content, restoring swipe navigation and providing visual feedback. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
In the EPUB reader's paged scroll mode, chapters with only a single image (or any content that fits within one page) cannot be navigated via swipe gestures — only tap navigation works. This is because the WKWebView scroll view's content size equals its bounds width, leaving nothing to scroll, so
scrollViewWillEndDraggingnever fires with meaningful velocity.Approach
Set
alwaysBounceHorizontal = trueon the web view's scroll view. This allows rubber-band dragging even when content fits in a single page, which:scrollViewWillEndDraggingwith proper velocity so the existing chapter navigation logic worksThe vertical scroll mode (
WebPubScrolledView) already setsalwaysBounceVertical = trueand does not have this issue.Testing
Closes #647