Michael Grant
59d714569f
Scale pane on unhiding to window when necessary
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-01 21:02:04 +01:00
Michael Grant
d6cf5e0e4d
Add hidden panes and a "show desktop" button to the pane list.
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-01 21:02:04 +01:00
Michael Grant
7810f8abf3
Zoomed panes are now like full screen floating panes.
2026-10-01 09:00:55 +01:00
nicm
9be3a35178
Do not unzoom when resizing a floating pane that was created with -A.
...
Similarly, skip hidden floating panes when changing Z order. Reported by Clark
Wang.
2026-09-21 13:44:39 +00:00
nicm
c552d1bf16
Layout cell can be replaced by unzoom, fixes use after free. From Uzair
...
Aftab.
2026-08-31 14:56:12 +00:00
nicm
d29aa12117
Replace the notification system with events. Events can carry a payload of
...
additional payload (to reduce problems with lifetime of objects) and are
delivered to one or more event sinks. This is more powerful and reduces the
complex dependencies between control mode and hooks. Events are now used for
hooks, control mode notifications and for monitors (set-hook -B).
wait-for can now wait for an event to fire (-E flag, with -F to for filter),
with -v to print the payload, as well as listing (-l) waiting clients on an
event and forcing one to wake (-w).
A few additional hooks are also now available (pane-created, pane-resized, etc)
and some of the existing ones have additional format variables available.
2026-07-10 13:38:45 +00:00
nicm
7188391a22
Add a layout_geometry container struct, from Dane Jensen.
2026-07-07 08:07:26 +00:00
nicm
e06207c914
Cache scrollbar options in window to avoid a slow lookup when working
...
out visible ranges.
2026-06-29 19:03:34 +00:00
nicm
c29b41e527
Make pane scrollbars able to auto-hide after a short timeout. This
...
replaces the previous "modal" behaviour where the pane would be resized,
which tended to make a mess. Instead, the scrollbar appears when
scrolling or when hovered over with the mouse and disappears a
(configurable) short period later. From Michael Grant.
2026-06-29 07:45:09 +00:00
nicm
d0bf3bf06d
Add ability to float a tiled pane to break-pane, from Dane Jensen.
2026-06-26 10:02:01 +00:00
nicm
dd2fef6673
Do not count arguments starting - as optional arguments, makes old
...
resize-pane syntax work. GitHub issue 5275, based on a changed from Dane
Jensen.
2026-06-26 09:54:56 +00:00
nicm
9dba08ac8b
Allow -p more than 100%, and account for borders when sizing new panes.
...
From Dane Jensen.
2026-06-23 09:29:26 +00:00
nicm
d4defd943a
Add -M to move-pane and default bindings for M-drag. From Michael Grant.
2026-06-17 07:52:21 +00:00
nicm
bdc01f44de
Fix resizing floating pane with a left scrollbar, from Michael Grant.
2026-06-16 08:57:07 +00:00
nicm
87976aa48e
Add a helper to get pane-border-status for a window for some other
...
changes to come.
2026-06-14 19:31:37 +00:00
nicm
aa2fd3a151
Add flags to move-pane to move floating panes around (-U, -D, -L, -R
...
similar to resize-pane; -X, -Y similar to new-pane).
2026-06-13 16:16:18 +00:00
nicm
3ea458b9dc
Add support for floating panes to resize-pane, from Dane Jensen.
2026-06-11 10:16:19 +00:00
nicm
ae6a749d3a
Move the PANE_FLOATING flag into the layout cell and add an accessor.
...
From Dane Jensen.
2026-06-02 08:13:50 +00:00
nicm
9aa9a92f72
Pane resizing code for floating panes, mostly by Michael Grant.
2026-05-21 07:28:51 +00:00
nicm
6c0067c103
Do not notify window-layout-changed if the window is about to be
...
destroyed (since it may have been freed by the time the notify happens),
from Romain Francoise in GitHub issue 3860.
2024-03-21 11:30:42 +00:00
nicm
3276f0c184
Adjust size given to resize-pane for pane status line, GitHub issue
...
3050.
2022-02-03 11:06:11 +00:00
nicm
110ba767e5
Rename a member to match what it will be in future.
2021-08-21 10:28:05 +00:00
nicm
08e6360f23
Add args parsing callback for some future work, currently unused.
2021-08-21 10:22:38 +00:00
nicm
5f32b7d961
Hide struct args behind a couple of accessor functions.
2021-08-20 19:50:16 +00:00
nicm
dc893405e1
Fix some error strings, from Kris Katterjohn.
2020-05-25 18:17:14 +00:00
nicm
f03b61131b
Drop having a separate type for style options and make them all strings,
...
which allows formats to be expanded. Any styles without a '#{' are still
validated when they are set but any with a '#{' are not. Formats are not
expanded usefully in many cases yet, that will be changed later.
To make this work, a few other changes:
- set-option -a with a style option automatically appends a ",".
- OSC 10 and 11 don't set the window-style option anymore, instead the
fg and bg are stored in the pane struct and act as the defaults that
can be overridden by window-style.
- status-fg and -bg now override status-style instead of trying to keep
them in sync.
2020-05-16 15:01:30 +00:00
nicm
adb76fd1ce
Move cmdq_state into cmd-queue.c.
2020-04-13 14:46:04 +00:00
nicm
9a65102bfc
Rename cmdq_shared to cmdq_state which will better reflect what it is
...
(going to be) used for.
2020-04-13 14:04:25 +00:00
nicm
77d5b0cc53
Store a key event not a mouse event in the shared data.
2020-04-13 13:42:35 +00:00
nicm
04cdd03525
Also move cmdq_item and cmdq_list into cmd-queue.c (this is to make its
...
use more clearly defined and preparation for some future work).
2020-04-13 10:59:58 +00:00
nicm
c20eb0c0ae
Make struct cmd local to cmd.c and move it out of tmux.h.
2020-04-13 08:26:27 +00:00
nicm
e6cddcf752
Add a -T flag to resize-pane to trim lines below the cursor, moving
...
lines out of the history. GitHub issue 2134.
2020-03-31 17:13:20 +00:00
nicm
8828b958f0
Break code to convert an argument as a percentage into a common function.
2020-03-21 13:16:15 +00:00
nicm
0c5e9c6efa
Add support for percentage sizes for resize-pane ("-x 10%"). Also change
...
split-window and join-pane -l to accept similar percentages and
deprecate -p. From Anindya Mukherjee.
2019-10-15 08:25:37 +00:00
nicm
ddf53d6e4e
Correctly adjust mouse position if the status line is at the top and
...
more than one line. GitHub issue 1822.
2019-07-06 20:56:34 +00:00
nicm
4097257bef
Do not store the mouse position we calculate as the start of a drag back
...
into the mouse event that later code uses, it has been adjusted and they
should use the original position. GitHub issue 1710.
2019-05-03 18:42:40 +00:00
nicm
fc3d85e34b
Fix mouse positioning when the pane is not entirely visible.
2019-05-03 16:51:29 +00:00
nicm
3bc08b0dc0
Some tidying and helper functions.
2018-08-18 16:14:03 +00:00
nicm
dec6ec9e29
Minor cosmetic improvement from KOIE Hidetaka.
2018-06-24 21:24:09 +00:00
nicm
e6cbeb4f38
Make it possible to resize multiple panes by dragging corners, from Dan
...
Aloni in GitHub issue 1376.
2018-06-09 17:05:52 +00:00
nicm
f6bad7efd7
Instead of working out which pane to resize with the mouse by walking
...
the panes list, look through the layout cells for the nearest border and
resize that cell. From Dan Aloni in GitHub issue 1374.
2018-06-08 20:54:22 +00:00
nicm
c54a5b3690
Change how we resolve which pane is dragging when there are multiple
...
options - choose the largest pane, which is more likely to be the one the
user wants to resize. Prompted by a report from Thomas Sattler.
2017-05-11 07:24:42 +00:00
nicm
ee45a8a149
Get rid of the extra layer of flags and cmd_prepare() and just store the
...
CMD_FIND_* flags in the cmd_entry and call it for the command. Commands
with special requirements call it themselves and update the target for
hooks to use.
2017-04-22 10:22:39 +00:00
nicm
bba588752f
Store state shared between multiple commands in the queue in a shared
...
structure.
2017-04-21 14:01:19 +00:00
nicm
b342bd0b46
Mass rename struct cmd_q to struct cmdq_item and related.
2016-10-16 19:04:05 +00:00
nicm
ddc4512d2e
Rewrite command queue handling. Each client still has a command queue,
...
but there is also now a global command queue. Instead of command queues
being dispatched on demand from wherever the command happens to be
added, they are now all dispatched from the top level server
loop. Command queues may now also include callbacks as well as commands,
and items may be inserted after the current command as well as at the end.
This all makes command queues significantly more predictable and easier
to use, and avoids the complex multiple nested command queues used by
source-file, if-shell and friends.
A mass rename of struct cmdq to a better name (cmdq_item probably) is
coming.
2016-10-16 17:55:14 +00:00
nicm
ed971268be
Add CMD_AFTERHOOK flag to the easy commands that don't need any special handling.
2016-10-14 22:14:22 +00:00
nicm
a81685bfac
Add static in cmd-* and fix a few other nits.
2016-10-10 21:51:39 +00:00
nicm
66b5477cc1
Do not allow the opposite pane to resize when dragging with the mouse
...
because it is not possible to keep the mouse on the border when the
minimum size is reached.
2016-10-10 17:28:30 +00:00
nicm
f0239a8fe9
Remove some more unused variables, and use RB_FOREACH_SAFE in
...
key_bindings_unref_table.
2016-03-01 12:06:07 +00:00