From dfa5bd4d413504a6afff414962c4de70ab093af0 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 22:21:56 -0300 Subject: A middle or right sweep over a column's or the workspace's tag runs or looks for what it swept, as a pane tag's does Both headers acted on the press: a middle or right press ran, or looked for, the word under it (or the header's selection when it was on that) at once, so a drag had nothing left to do. A sweep of `echo SWEPT` in a column tag ran a bare `echo`. They have done so since the headers were drawn apart from the panes; it is no regression, and the -l/Restore allocator fix (ompukopz) does not touch it. Now a press on a header holds a HeaderSweep (the column by its serial, or the workspace), which the drag extends, held to the header's row and text as a pane tag's sweep is. It is painted in its button's tint meanwhile, and the release runs what it swept in that header's context; a release that has not moved runs the word or selection a click always did. The other of middle and right cancels it (acme 2-3/3-2); the select button is inert, as a header's command already takes the held selection as its argument. Running on the release, a builtin from a header is announced as one from a pane tag is: the press used to set the announcement and the release clear it at once. find, restore, theme, topbarexec, ttyhelp, tutor and windowops re-recorded for that badge alone. headersweep.snap sweeps the column and workspace tags with the middle button and a word part with the right one, and cancels a sweep; headersweep-restored.snap sweeps both after Dump and Restore. Co-Authored-By: Claude Opus 5.5 --- test/snapshots/headersweep.snap | 67 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 test/snapshots/headersweep.snap (limited to 'test/snapshots/headersweep.snap') diff --git a/test/snapshots/headersweep.snap b/test/snapshots/headersweep.snap new file mode 100644 index 00000000..be070357 --- /dev/null +++ b/test/snapshots/headersweep.snap @@ -0,0 +1,67 @@ +# A middle sweep over a column's tag or the workspace's runs what it swept, +# as it does over a pane's tag: highlighted while the button is held, run +# when it comes up. Both headers used to run the word under the PRESS, on +# the press, so a sweep of `echo SWEPT-COL` ran a bare `echo`. A right sweep +# looks for what it swept the same way, and the other button cancels. +file hay.txt ZQNEEDLE +start 21 120 -n 3 +wait 8000 Newcol +stable 700 20000 +# the column tag: type a command onto it, then sweep the whole command +press left 50 2 +release left 50 2 +key space +text echo SW''EPT-COL +key esc +settle 100 +press middle @echo 2 +drag middle @echo+8 2 +stable 300 5000 +snapstyle col-sweeping +drag middle @echo+16 2 +release middle @echo+16 2 +wait 8000 SWEPT-COL +stable 700 15000 +snap col-swept +# the workspace tag, the same +press left 110 1 +release left 110 1 +key space +text echo SW''EPT-WS +key esc +settle 100 +press middle @echo 1 +drag middle @echo+15 1 +release middle @echo+15 1 +wait 8000 SWEPT-WS +stable 700 15000 +snap ws-swept +# a right sweep over part of a word looks for the part: `hay.txt` opens, +# where a click would look for all of `xxhay.txtxx` +press left 118 1 +release left 118 1 +key space +text xxhay.txtxx +key esc +settle 100 +press right @xxhay.txtxx+2 1 +drag right @xxhay.txtxx+9 1 +release right @xxhay.txtxx+9 1 +wait 8000 ZQNEEDLE +stable 700 15000 +snap ws-looked +# the look button tapped during a middle sweep cancels it: nothing runs +press middle @echo 2 +drag middle @echo+16 2 +press right @echo+16 2 +release right @echo+16 2 +release middle @echo+16 2 +stable 700 15000 +snap cancelled +# for comparison, a select sweep over the second column's tag selects, in +# the tag's selection colours, and runs nothing +press left @Find#2 2 +drag left @Grep#2+4 2 +release left @Grep#2+4 2 +stable 700 15000 +snapstyle selected -- cgit v1.3