diff options
| author | sl0p <sl0p@sl0p.foo> | 2026-08-14 00:28:57 +0200 |
|---|---|---|
| committer | sl0p <sl0p@sl0p.foo> | 2026-08-14 00:28:57 +0200 |
| commit | 61ac1318eaad46363235d41e9cbc31eb7e3e2f84 (patch) | |
| tree | ef9b88ec45dbb7227ad15736f80aa22c3354c6ab /src/server.c | |
| parent | sl0ptty: the border is the button — click an edge to split toward it (diff) | |
| download | slosh-61ac1318eaad46363235d41e9cbc31eb7e3e2f84.tar.gz slosh-61ac1318eaad46363235d41e9cbc31eb7e3e2f84.tar.xz slosh-61ac1318eaad46363235d41e9cbc31eb7e3e2f84.zip | |
sl0ptty: fix the split guide describing the layout from before the split
Which border the pointer is over was remembered from the last motion event, so
after a click split the guide stayed attached to the old pane and the old edge
until the mouse moved and corrected it.
It is derived during the paint now: draw_split_guide asks the hit list where
the pointer is, using the entries that same pass just registered for that pane.
Drawing and hit-testing already could not disagree; now drawing and the layout
cannot either. The pointer position is the only thing kept.
Same lesson as the hit list, one level up: do not remember what you can derive
from the frame you are drawing.
Regression test splits by clicking a border and then deliberately does not move
the mouse, asserting exactly one pane shows a guide, that it is the pane the
pointer is actually inside, and that it is on the edge the pointer is on.
391 checks green.
Diffstat (limited to 'src/server.c')
0 files changed, 0 insertions, 0 deletions
