Sheets scroll on a fast drag and after Show all (#13) #131
No reviewers
Labels
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
schaefera/utStudyBIble!131
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/sheet-scroll"
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?
What
The verse sheet (and the note sheet) can now be scrolled down by a drag. A Drawer took fast vertical drags over itself to slide shut, so the list inside never scrolled.
BottomSheetis now a modal Popup that slides up the same way. It closes on a tap on the dimmed page or on Escape/Back, but no longer on a downward swipe.Blast radius
Tier: trunk
Trunk paths touched:
tools/e2e/(new caseverse-sheet-scroll, newe2e_draghelper).qml/controls/BottomSheet.qmlandqml/pages/VerseSheet.qmlare leaf.Testing tier: standard
Gate / rollback: revert this merge (QML and e2e only; no data, schema or settings).
Proof
687744f(run 250): changes, rust, audit, app, e2e and click all succeeded. All the sheet cases pass, including the newverse-sheet-scroll.verse-sheet-scrollagainst the old Drawer fails with "a drag up didn't scroll the tall sheet ('')" (810 of 6675 px shown). With the Popup the drag scrolls to 320 px, and Escape closes the sheet ("utsb: sheet closed").cargo make app-docker: passed, peak PSS 162–166 MB of the 176 MB budget.8022b00):Short sheet, scrolled past the verse text:
Tall sheet after Show all, scrolled to the end:
Review
Reviewer: fresh-context
code-reviewat high (346): 2 low findings, 2 fixed in8022b00(focus: true; the case waits for the "sheet moved" line). Re-review at medium (347): 0. Delta review at medium (348): 0. None declined, deferred or left open.Review-Confidence: 100/100. Every changed behaviour has proof. The only untested line is
focus: true, because under Xvfb a Popup closes on Escape even without it. It matches Drawer's default.Confidence by part
yfromshown): high. The parent sits at the window's origin, and this was checked on the phone, tall and short.focus: true): medium. Not tested on its own.BibleChooser.qmlis also a Drawer with a list and may have the same scroll problem with many Bibles.🤖 Generated with Claude Code
claude-review · level high · commit
d4a3663· range origin/main...HEADFiles reviewed: qml/controls/BottomSheet.qml, qml/pages/VerseSheet.qml, qml/pages/NoteSheet.qml, qml/pages/ReadingPane.qml, qml/pages/BibleChooser.qml, qml/pages/BuildInfoPopup.qml, qml/Main.qml, tools/e2e/cases/verse-sheet-scroll.sh, tools/e2e/cases/verse-sheet.sh, tools/e2e/lib.sh
No high or medium findings. The Popup is declared in ReadingPane (a Page filling the StackView at 0,0 with no window header), so its parent-relative x/y equal window coordinates. The y binding follows windowHeight and the tall growth, and the enter/exit transitions drive
shown.Low:
focus: true. Not verified at runtime.Answers to review 346, both fixed in
8022b00:focus: true, the value a Drawer had, so Escape and Back close a sheet again.utsb: sheet movedline withe2e_waitinstead of reading it 1 s after release, so a glide that ends late no longer leaves it empty.The sheet cases still pass with both fixes: verse-sheet-scroll, verse-sheet, verse-sheet-no-tsk, verse-copy, verse-text-tap and note-sheet.
Re-review, level medium (trunk: tools/e2e/; qml/controls is leaf). Commit
8022b00. Range d4a3663..8022b00.Files reviewed: qml/controls/BottomSheet.qml, tools/e2e/cases/verse-sheet-scroll.sh, tools/e2e/lib.sh (e2e_wait), qml/pages/ReadingPane.qml (focus use), qml/Main.qml (focus use).
Findings: none with a concrete failure scenario.
focus: trueon the Popup: the only focus users are the ReadingPane ListView (focus: true) and the Main.qml ReadingPane item. A grep finds noKeys.handlers in qml/, so nothing in ReadingPane reads keyboard focus. Qt's Popup moves focus back to the previous item on close in 5.15. I did not run it on a device.sheet movedline is only emitted by the sheet's FlickableonMovementEnded, so nothing else writes it before the drag.e2e_wait ... 1(10 s default, exits on app death) therefore waits for the post-glide report, ande2e_lastthen reads the final value.Delta review, level medium, trunk (tools/e2e/), testing tier standard.
Commit:
687744f4c9Range: 8022b00a306dd7614ef457796c24564a427ba883..HEAD
Files reviewed: qml/controls/BottomSheet.qml (in full), tools/e2e/cases/verse-sheet-scroll.sh (in full), tools/e2e/lib.sh (e2e_win, e2e_wait, e2e_last, xdotool uses), and a grep of tools/ and qml/ for 'sheet closed'.
Findings: none with a concrete failure scenario.
$e2e_winis set by e2e_window before the case body runs.Not exercised: I did not run the e2e case, so whether
xdotool key --windowEscape reaches the focused Popup under Xvfb is untested. lib.sh's other key sends (Return, line 431) omit --window. CI will show it.WIP: Sheets scroll on a fast drag and after Show all (#13)to Sheets scroll on a fast drag and after Show all (#13)Merge gate: approved at
687744f.8022b00(re-review 347 and delta review 348 found nothing). There were no high or medium findings.687744fon origin/fix/sheet-scroll; head is687744f.focus: trueis not tested on its own.