mirror of
https://github.com/tmux/tmux.git
synced 2025-12-24 01:16:03 +00:00
Add support for applications to use synchronized output mode (DECSET
2026) to prevent screen tearing during rapid updates. When an application sends SM ?2026, tmux buffers output until RM ?2026 is received or a 1-second timeout expires. From Chris Lloyd with the assistance of Claude Code, GitHub issue 4744.
This commit is contained in:
4
tmux.h
4
tmux.h
@@ -643,6 +643,7 @@ enum tty_code_code {
|
||||
#define MODE_CURSOR_BLINKING_SET 0x20000
|
||||
#define MODE_KEYS_EXTENDED_2 0x40000
|
||||
#define MODE_THEME_UPDATES 0x80000
|
||||
#define MODE_SYNC 0x100000
|
||||
|
||||
#define ALL_MODES 0xffffff
|
||||
#define ALL_MOUSE_MODES (MODE_MOUSE_STANDARD|MODE_MOUSE_BUTTON|MODE_MOUSE_ALL)
|
||||
@@ -1190,6 +1191,7 @@ struct window_pane {
|
||||
|
||||
struct window_pane_resizes resize_queue;
|
||||
struct event resize_timer;
|
||||
struct event sync_timer;
|
||||
|
||||
struct input_ctx *ictx;
|
||||
|
||||
@@ -3099,6 +3101,8 @@ void screen_write_preview(struct screen_write_ctx *, struct screen *, u_int,
|
||||
void screen_write_backspace(struct screen_write_ctx *);
|
||||
void screen_write_mode_set(struct screen_write_ctx *, int);
|
||||
void screen_write_mode_clear(struct screen_write_ctx *, int);
|
||||
void screen_write_start_sync(struct window_pane *);
|
||||
void screen_write_stop_sync(struct window_pane *);
|
||||
void screen_write_cursorup(struct screen_write_ctx *, u_int);
|
||||
void screen_write_cursordown(struct screen_write_ctx *, u_int);
|
||||
void screen_write_cursorright(struct screen_write_ctx *, u_int);
|
||||
|
||||
Reference in New Issue
Block a user