Michael Grant
b9272d2f7b
Merge branch 'master' into hidden-panes
2026-10-03 22:20:57 +01:00
nicm
0a1adfa116
Instead of redrawing the entire pane or scene when moving or redrawing a
...
pane, add damage rectangles and redraw only the affected spans. From
Michael Grant.
2026-10-02 14:10:41 +00:00
Michael Grant
0ce3f20a2d
Hide the zoomed panes when a covered tiled pane is activated.
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-01 21:02:12 +01:00
Michael Grant
42f6f3ca26
Make show desktop a cycle and ignore hidden zooms in window_zoomed_flag.
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-01 21:02:04 +01:00
Michael Grant
2345f71df9
Bugfixes.
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-01 21:02:04 +01:00
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