Skip to content

Keep the end a conversation opens on, and through a fold above - #87

Open
HugoHeneault wants to merge 5 commits into
spatie:mainfrom
HugoHeneault:transcript-scroll-follow-ups
Open

HugoHeneault wants to merge 5 commits into
spatie:mainfrom
HugoHeneault:transcript-scroll-follow-ups

Conversation

@HugoHeneault

Copy link
Copy Markdown
Contributor

Follow-up to #68: two scroll bugs I was still fixing when it was merged. My fault, I should have said that work was still in progress and that we were hitting a few bugs before you merged it.

What changes

  • A conversation opened at its end no longer jumps to the top a few milliseconds later.
  • Going to the end, or placing the view elsewhere, forgets a place kept from before a resize instead of replaying it.
  • The live follower keeps the end when a row above it folds, instead of reading the shrink as the reader scrolling up.

Limits

  • Fold credit left after a move stays valid until the next placement, so a short scroll up at rest can be pulled back down.
  • The kept-place fix lives in the table coordinator, so no core test covers it; checked against the jump in real use.

This branch is on my personal fork, so maintainer edits are allowed.

The owner's log showed a conversation followed at its end letting the end go 450 points up within
a tenth of a second, with no gesture: a row above it had shrunk, the view moved up by as much, and
the follower read that as a reader scrolling up. An upward move no larger than what the document
has shrunk by since the mark is not a reader now, and the log line names the conversation.
A place read before a resize was replayed a turn later by viewportWork or
placeWork, after the conversation had been opened at its end and the
follower had taken over, and put the view back on the top row. Going to
the end now leaves the resize pass to restore the end only, and placing
the view elsewhere or changing conversation forgets the kept place.
A conversation opened at its end in a pane not yet laid out had its top
row kept by viewportWillResize as the reader's place, and the resize pass
replayed it once the pane had its height, after the follower had taken
the end over: the view went back to the top.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant