fix: preserve divina scroll position after rotation reload#697
Merged
fix: preserve divina scroll position after rotation reload#697
Conversation
Synchronize the visible scroll-page anchor back into ReaderViewModel before the scroll container is dismantled. This prevents orientation-driven reader reloads from restoring an older committed page after rapid swipe navigation in DIVINA scroll mode.
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 DIVINA scroll mode, rapidly swiping a few pages and then immediately rotating the device could trigger a reader reload that restored the page from before the swipe burst. The visible page had not been synchronized back into
ReaderViewModelbefore the scroll container was rebuilt.Approach
Capture the current scroll anchor right before the native scroll container is dismantled and write that item back into
ReaderViewModelimmediately. This keeps the next reader instance aligned with the page the user was actually looking at when orientation-driven reload happens.Scope
ScrollPageViewteardown on iOS/tvOSValidation
make build-ios-cimake build-macos-cimake build-tvos-ci