The strip says frozen when nobody swiped #22
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
mobrule/kurageyomi#22
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#1
What is wrong
From a real episode: "it almost always says frozen at 0:00."
+0:00is the tell. The strip froze on the panel that is already live, which means the settle it reacted to was its own auto-scroll, not a reader's swipe. #18 identified this race and judged the window small: if the Playhead crosses into the next Cue between an auto-scroll starting and itsscrollend, the settle reads as a reader move. It is not small. It is the common case.The consequence is worse than a wrong label. A spurious freeze stops the strip following the show, so the reader has to keep pressing a control to undo something they never did — and with follow mode on it also fires a seek backwards, writing to a session other people are watching.
#18 rejected the obvious fix — tracking the app's own scroll target separately from
panelIndex— as duplicating whatpanelIndexalready means. That judgement was made against a rare race. Reconsider it against a constant one, or find a better discriminator: what matters is that the strip can tell its own scrolling from the reader's.Do not fix this by suppressing the label. A strip that has stopped following and no longer says so is the failure ADR 0007 exists to prevent.
Acceptance criteria
+0:00while frozen is either impossible or means something trueBlocked by
Merged to
maininaf73452. Suites at merge: 79 C#, 335 phone.The strip said frozen when nobody swiped, almost always, at
+0:00.The cause was a false premise in a doc comment:
panelIndexwas described as the panel on screen, when it is the panel that should be on screen. With smooth scrolling the strip is still travelling, so crossing a Cue boundary mid-scroll made the app's own scroll read as a reader's swipe — freezing, and with follow mode on, seeking backwards with no gesture behind it.The strip now records what it told itself to do. The scroll helper was folded so there is no way to scroll without recording it.