Instead of fully redrawing the pane when sync ends, only redraw lines

that have been changed.
This commit is contained in:
nicm
2026-07-01 15:44:13 +00:00
parent e9396e59d9
commit 565db46a19
4 changed files with 142 additions and 51 deletions

4
tmux.h
View File

@@ -1260,6 +1260,9 @@ struct window_pane {
#define PANE_UNSEENCHANGES 0x4000
#define PANE_REDRAWSCROLLBAR 0x8000
bitstr_t *sync_dirty;
u_int sync_dirty_size;
u_int sb_slider_y;
u_int sb_slider_h;
int sb_auto_visible;
@@ -3396,6 +3399,7 @@ 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_clear_dirty(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);