aboutsummaryrefslogtreecommitdiffstats
path: root/docs/scripting.md
diff options
context:
space:
mode:
authoruser <user@clank>2026-08-16 19:31:59 +0200
committeruser <user@clank>2026-08-16 19:31:59 +0200
commitd8e6e1525ace2a68a060e60365178f5dfa016a4b (patch)
tree83914faa68d7e8d17f67989abbaf0cea9af6b662 /docs/scripting.md
parentsl0ppty: `C-a >` sends this pane to the next tab (diff)
downloadslosh-d8e6e1525ace2a68a060e60365178f5dfa016a4b.tar.gz
slosh-d8e6e1525ace2a68a060e60365178f5dfa016a4b.tar.xz
slosh-d8e6e1525ace2a68a060e60365178f5dfa016a4b.zip
sl0ppty: drag a pane onto a tab
Drop it on a tab in the strip and it moves into that tab; drop it on the `+` and it gets one of its own. The fourth verb of the same drag machine, and it cost almost nothing because it is the third one's target read the other way round: the strip was already a row of drop targets, and a pane in your hand was already a thing being carried somewhere. The strip draws the drop states itself. `ptr_on` reports nothing during a drag -- on purpose, so hover feedback does not fight a gesture -- so a tab cannot find out it is under the pointer the usual way. It uses the two states the panes already use for this exact question: every tab the pane does not live in is a candidate in the drop colour, and the one under the pointer is filled. These are all targets; that is the one you are on. The tab the pane already lives in does not offer itself, because dropping there is the one refusal a drag can reach -- and it says "it is already in that tab" rather than looking like a drag that failed to take. Leaving the strip takes the offer back, the same way dragging a tab off the strip is not a cancel but simply not a place to put one. Releasing over a pane still swaps the two, which has a test of its own: the strip is a new kind of destination, not a replacement for the old one. A toast says where the pane went, and here it matters more than for the keys: the pane lands in a tab you are not looking at, so without a word the screen just shows one fewer pane. Verified: `tests/test_move_pane.py` at 52 checks. The new ones drive real mouse reports -- press on a title, motion onto a tab hit, release -- for the move, the `+`, the three highlight states (candidate, filled, and the pane's own tab declining), taking the offer back by dragging off the strip, the refusal, and that pane-onto-pane still swaps.
Diffstat (limited to 'docs/scripting.md')
0 files changed, 0 insertions, 0 deletions