pmacs/pmacs-gpu/src
Levi Neuwirth 6ad0c448b1
fix(gui-1b): B5 --- witness the motion path, the blank, and the menu
Three of B5's claims were asserted nowhere that could fail.

THE EVERY-MOTION FIX WAS UNWITNESSED. Both rows called
`desired_cursor_icon` directly, so reinstating the divider-change gate
left them green --- the gate is on the caller. A new row drives
`apply_cursor_moved` from text into the gutter with `hover_divider`
false throughout and asserts `last_cursor_icon` changes. Reinstating the
gate fires it.

THE GEOMETRIC-VERSUS-BYTE RULING WAS UNWITNESSED. The only positive
point sat over an actual glyph, so a byte hit-test passed. A row now
puts the pointer well past a short line's end, inside the text
rectangle, and requires `Text`. Bounding x by the glyphs' extent ---
byte-hit-test semantics expressed geometrically --- fires it.

THE MENU PATH LEAKED AN I-BEAM. `apply_cursor_moved` returns early while
a menu is open, so an I-beam showing when the menu opened stayed on
screen over the menu indefinitely. The menu now applies the icon on that
path and counts as chrome in `pointer_over_text_content`, with a row;
dropping the guard fires it.

`apply_panel_cursor_icon`'s doc still said it chooses between RowResize
and Default. It chooses among three, and says so, including why calling
it per-motion is cheap.
2026-09-01 14:16:27 +02:00
..
attach.rs feat(panel): the wheel exemption, exhaustion, and mapped coalescing 2026-08-20 17:55:21 +02:00
main.rs fix(gui-1b): B5 --- witness the motion path, the blank, and the menu 2026-09-01 14:16:27 +02:00
math_layout.rs feat(math): caret-driven suppression, the draw pass, and the slice acceptance 2026-07-24 22:04:35 -04:00
math_parse.rs feat(math): caret-driven suppression, the draw pass, and the slice acceptance 2026-07-24 22:04:35 -04:00
terminal.rs feat(bottom-panel): paint and drive the GPU panel band 2026-07-29 18:40:46 -04:00