# Widget picker: rows past the card on landscape, and tap to add (2026-10-15)
## The defect on the board
`board/before-widget-rows-past-the-card-1280x800-grim.png` is a native `grim`
capture on the HDMI monitor (1280x800). The system was
`/nix/store/acmin041a4hb7nglym6h1lcm66sp3wyh-nixos-system-nixos-26.11.20260919.20b1ddd`.
The Widgets page was opened with the scripted sequence below:
```
swaymsg seat - cursor set 900 450; cursor press/release button3 # Home menu
swaymsg seat - cursor set 640 115; cursor press/release button1 # Widgets
```
The card ends at y≈608, but the Battery row (y≈602-694) and the Weather row
(y≈708-800) are drawn below it, over the dock. A press there fails the
picker's card test, which dismisses the sheet. The operator had reported
adding the Battery widget and "nothing showed up".
On the same board, a scripted press-and-hold on the Battery row followed by
a release did place a Battery widget. That path checks only the row, not the
card, so dragging still worked.
## Host renders after the fix
`host/widget-picker-{568x1232,1232x568,1280x800,1920x1080}.png`, generated by
```
cd nix/rust-shell-client
cargo run --example render_landscape_surfaces --
```
The renders use the `widget-picker-*` outputs. On the portrait panel the
rows stay in one column at full size. At 1232x568 and 1280x800 they form
two columns inside the card. At 1920x1080 they stay in one column, because
it fits.
Evidence class: host render, which proves layout only. The board check is
task 1.3.
## The fix on the board (injected pointer)
The system was
`/nix/store/hfmjszha3b3xmlv483yq9hvnpg6gfm81-nixos-system-nixos-26.11.20260919.20b1ddd`
(bundle `zmwaj1j5…`), on HDMI at 1280x800, at 16:57 CDT on 2026-10-15.
Evidence class: **injected pointer events** (`swaymsg seat - cursor
set/press/release`) plus native `grim` captures. This is not a physical
trackpad.
- `board/after-widgets-page-1280x800-grim.png` was taken after a
right-click at (1100, 450) and a click on Widgets. The seven rows sit in
two columns inside the card, each subtitled "tap to add, hold to drag".
- `board/after-weather-row-click-1280x800-grim.png` was taken after one
click on the Weather row at (940, 330), which had been past the card
before the fix. The sheet closed and a Weather widget appeared in the
free space to the right of the Battery widget.
- The shell logged `pointer-down`, `pointer-up`, `home-layout-changed`.
- `home.json` now lists `clock`, `battery`, `weather`.
A right-click below the grid's last row (y = 520 or 560 at 1280x800) opens
nothing. That is the existing empty-cell rule, not a defect.