diff options
| author | user <user@clank> | 2026-08-16 19:31:59 +0200 |
|---|---|---|
| committer | user <user@clank> | 2026-08-16 19:31:59 +0200 |
| commit | d8e6e1525ace2a68a060e60365178f5dfa016a4b (patch) | |
| tree | 83914faa68d7e8d17f67989abbaf0cea9af6b662 /docs | |
| parent | sl0ppty: `C-a >` sends this pane to the next tab (diff) | |
| download | slosh-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')
| -rw-r--r-- | docs/panes.md | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/docs/panes.md b/docs/panes.md index 388de89..40ea565 100644 --- a/docs/panes.md +++ b/docs/panes.md @@ -32,6 +32,10 @@ nothing you click can disagree with what is on screen. drag the crossing to move both at once. - **Drag a pane by its title** onto another to swap them. Everything it could land on greys out; the pane in your hand keeps its colour. +- **...or onto a tab in the strip** to move it into that tab, or onto the `+` for a + tab of its own. The tabs light up as destinations while you carry a pane and the + one under the pointer fills; the tab it already lives in does not offer itself. A + toast says where it went, since the pane lands somewhere you are not looking. - **Double-click a name to rename it in place** — a pane's title or a tab in the strip. Enter keeps it, Escape abandons it, empty gives it back to the program. - **Drag a tab along the strip** to reorder it. The strip rearranges as you go |
