You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Phone: a selected search result in a short folder stays hidden under the selection sheet #406
Where:web/src/components/FolderPane.vue:209-219 (applySelect) calls web/src/components/FileList.vue:88-93 (focusRow, which only calls .focus()). The sheet is styled in web/src/styles/app.css:679-685.
What happens: On a Pixel 7 in de-du, search for "plan", press ↓ and Enter. This opens /home/Projekte?select=/Projekte/plan.txt, a folder with 5 entries. The last row is selected and focused, but it sits at 643-747 px while the sheet covers 666-839 px, and elementFromPoint at the row's centre hits the sheet. The page could scroll 98 px, because the folder keeps the sheet's height free below the list, but scrollY stays 0. focus() only scrolls when the row is outside the viewport, and this row is partly inside. In long lists the row is centred and visible.
Expected: The row the search opened is fully visible above the sheet.
Fix:
In focusRow, after focusing, call rowEl(at)?.scrollIntoView({ block: 'nearest' }).
On phone width, give rows scroll-margin-bottom: var(--selection-bar-height, 0px). On the desktop, give them the sticky toolbar's height as scroll-margin-top.
Do the same for tiles in GalleryGrid.vue.
Test (Playwright, mobile project): In a folder with 5 files, go to /home/<dir>?select=/<dir>/<last file>. Assert that the row's bounding box bottom is at or above the top of .selection-bar. Fails today: row bottom 747 > sheet top 666.
Found by the automatic review round (claude-opus-5-5, b739414); per CLAUDE.md the fix starts with a failing behaviour test.
Activity
fix(#406): Phone: a selected search result in a short folder stays hi…
BeSovereign commentedon Oct 20, 2026
Fixed: PR #415 squash-merged into
mainafter green CI (one commit;git revertit to undo).