Conversation
Layout scrolls were saved as a reading position while live follow was still on, so a long thread left at the bottom reopened mid-list with Scroll to end. A latched follow is now remembered at the end, and a gesture that releases the latch stores the real offset. Fixes pingdotgg#14051 Co-authored-by: maco <macodev00@users.noreply.github.com>
Owner
Author
|
Opened upstream. |
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.
Fixes pingdotgg#14051
What Changed
Returning to a thread now restores the end when live follow was still on.
MessagesTimelinestoresatEndas the geometric end, or as the end while live follow is enabled, ChatView's follow latch is still held, and the list is not holding anchored end space. A gesture that releases the latch stores the real offset on that same scroll.Why
handleScrollruns for layout movement, including row measurement and the frame afterrowschanges. A row taller than its 90px estimate, or a composer footer that grows without re-pinning, can leave the viewport more than 40px short of the content while the user is still at the latest message. That gap was saved as a reading position. The next visit turned live follow off, showed "Scroll to end", and restored the saved row or offset.ChatView already ignores that gap for the pill while the follow latch is held. The remembered position now uses the same latch. Anchored end space is excluded so a first send held near the top is not stored as the end.
Desktop uses this timeline. Mobile does not cache a timeline position here.
UI Changes
No new controls. A thread left at the bottom opens at the bottom again, without "Scroll to end". A thread left mid-list still restores that offset.
Checklist