nicm
02b37b3c69
Fix scrollbar pad to work even if not set in style.
2026-06-22 13:57:33 +00:00
nicm
d8370864f3
Memory leak from someone in GitHub issue 5259.
2026-06-22 12:39:56 +00:00
nicm
49dff83a00
Set check callback for menus so they aren't overwritten by sync.
2026-06-22 10:17:08 +00:00
nicm
95afd7549c
Rewrite screen-redraw.c to make it tidier and more maintainable. A scene
...
is generated and cached in the client: it holds positions and sizes of
panes, borders and so on. The scene is invalidated when a pane is moved
or resized or relevant option is changed. This scene is then drawn to
the client as needed and text and colours are filled in. With Michael
Grant.
2026-06-22 08:47:45 +00:00
nicm
e680420c89
Place floating cells meaningfully into the layouts, from Dane Jensen.
2026-06-22 08:10:16 +00:00
nicm
347baa6f3e
Do not walk off end or beginning of menu item list if every item is
...
disabled, GitHub issue 5255 from aizumusheer2 at gmail dot com.
2026-06-21 17:43:47 +00:00
nicm
1fc4dcb76f
Error if key is unknown rather than just carry on, GitHub issue 5248.
2026-06-20 08:51:28 +00:00
nicm
dcd7d1c8e6
Fix {} keys in tmux.1, pointed out by tb.
2026-06-20 08:46:08 +00:00
nicm
047f61aad6
popup_write can be deleted now also.
2026-06-19 18:41:36 +00:00
nicm
d04b1ffca5
Use a floating pane for the buffer mode editor instead of a popup.
2026-06-19 18:37:10 +00:00
nicm
c93e2f2332
Do not loop forever if a pane ends up with borders the wrong way round.
2026-06-19 18:28:18 +00:00
nicm
6c46358be8
Draw help directly instead of using a popup.
2026-06-19 17:37:26 +00:00
nicm
624db256c6
Add a loop_index variable and use it to show last used 5 sessions on the
...
session menu instead of next/previous.
2026-06-19 16:25:43 +00:00
nicm
f06d930445
Correctly report theme changes to panes, based on a fix from someone in
...
GitHub issue 5246.
2026-06-19 16:00:03 +00:00
nicm
b29f5688bd
Make default M-C-Up/Down bound to prompt movement commands in copy mode.
2026-06-19 15:28:26 +00:00
nicm
b1c72ec48c
Use a helper and skip some setup for empty cells.
2026-06-19 10:38:29 +00:00
nicm
e7f649e40a
Tidy up a bit in tty_draw_line.
2026-06-19 09:56:53 +00:00
nicm
035447b08f
Do not dereference the current window if it is NULL (can be if the
...
notification fires after session is destroyed). GitHub issue 5244 from
Ben Maurer.
2026-06-19 08:21:55 +00:00
nicm
14fc4a06a6
Unescape arguments before passing to format_expand1 so that escaping :s
...
etc actually works.
2026-06-18 11:54:37 +00:00
nicm
cba4ba9cdc
Check time periodically in loops rather than every one.
2026-06-18 11:45:08 +00:00
nicm
0a6c846091
Use evbuffer for building S, W, L lists, also add an xmemdup helper
...
instead of misusing asprintf.
2026-06-18 10:56:22 +00:00
nicm
d92a479d2f
Add a dim= style attribute to dim the colours (as best as tmux is able
...
to). GitHub issue 4842.
2026-06-18 09:59:55 +00:00
nicm
b1b184cdb8
Add functions to work out cell neighbours, and to remove a tiled cell.
...
From Dane Jensen.
2026-06-18 09:11:24 +00:00
nicm
1a6de01210
Check the panes again if deferred redraw to make sure the flag is always
...
set. Also add a helper for the loop.
2026-06-18 08:56:07 +00:00
nicm
3485e1c089
Tidy up server_client_check_redraw. Get rid of the bitmask tracking
...
panes which want redraw for deferred clients - if they are deferred then
they can just have a full redraw instead. Also return earlier if no
redraw is actually needed, and improve the comments.
2026-06-17 13:22:48 +00:00
nicm
1ba8fa6f04
Fix shifts to 1ULL and check scrollbar even if pane is not being redrawn.
2026-06-17 12:32:54 +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
eafd2bed5d
FIx a couple of minor errors in use of layout_cell_is_tiled.
2026-06-17 07:43:55 +00:00
nicm
9ad75e1dc3
Rename the visible ranges functions since they really relate to windows
...
and put them nto a new file.
2026-06-16 10:47:35 +00:00
nicm
4b772fd783
Allow rectangle selection to extend past end of current line to behave
...
the same as vi with virtualedit=block set. From Mark Kelly in GitHub
issue 5227.
2026-06-16 09:28:17 +00:00
nicm
fcbb6a7384
Initialize wname so it we are not freeing garbage if it is not used.
2026-06-16 09:00:25 +00:00
nicm
bdc01f44de
Fix resizing floating pane with a left scrollbar, from Michael Grant.
2026-06-16 08:57:07 +00:00
nicm
d2c23773ff
Fix missing border when drawing floating panes. From Michael Grant.
2026-06-16 08:53:14 +00:00
nicm
30e133d36a
Fix default window check in break-pane, from Dane Jensen.
2026-06-16 07:07:49 +00:00
nicm
0890df5891
Add layout_cell_is_tiled and layout_cell_has_tiled_child helper
...
functions, from Dane Jensen.
2026-06-16 07:06:32 +00:00
jsg
26285e183e
botton -> bottom
2026-06-16 05:01:56 +00:00
nicm
482e254a49
Rename window_pane_visible to match other functions, from Dane Jensen.
2026-06-15 21:47:01 +00:00
nicm
eb65331403
Be more strict about what names and titles we allow and reject them
...
immediately when possible, but allow # again for those directly set by
commands (but not escape sequences). From Barrett Ruth in GitHub issue
5175.
2026-06-15 21:41:39 +00:00
nicm
b86bd1fcd0
Add pane-border-lines none like popups (-B to new-pane).
2026-06-15 17:34:25 +00:00
nicm
bb750b07bc
If the client is blocked, defer the redraw because it may end up
...
partially discarded leading to redraw artifacts.
2026-06-15 15:05:12 +00:00
nicm
0e6fe5a097
Convert cursor position back to pane coordinates for tty_cmd_cell.
2026-06-15 14:56:30 +00:00
nicm
057b688fc7
Tidy up screen_redraw_get_visible_ranges by using a couple of
...
temporaries for start and end of range.
2026-06-15 12:07:49 +00:00
nicm
8ced9c332c
Use correct x position when drawing clipped line.
2026-06-15 11:45:51 +00:00
nicm
a41e6e2ed2
Add -B to new-pane to select the floating pane border.
2026-06-15 09:21:40 +00:00
nicm
7a18fa281d
Add top-floating and bottom-floating to pane-border-status to show
...
status line only on floating panes.
2026-06-15 08:16:05 +00:00
nicm
97b5f22a70
When redrawing a whole pane line, fall into tty_draw_line for any
...
characters that are not plain ASCII. Fixes redraw issues with partial
tabs and other wide characters when a pane is partly outside the window.
2026-06-15 07:40:45 +00:00
nicm
6e0e343f23
Fix various errors in redrawing:
...
- Fix the active pane colour when only two panes and scrollbars enabled.
- Clip left and right scrollbars the same for floating panes.
- Do not subtract scrollbar width twice when working out width of status
line.
- Check if a character is inside a visible range correctly (do not
include the next position outside the range).
2026-06-14 20:53:20 +00:00
nicm
cc27470cb6
Skip floating panes when working out the top or bottom cell. Fixes
...
missing bottom status pane status line when floating panes exist.
2026-06-14 20:37:57 +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
778a15b64a
Take account of borders when resizing floating panes.
2026-06-14 18:59:15 +00:00