From 1c1f4c121916821e717a2c1fd95c1ad015f1b563 Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 1 Oct 2024 08:01:19 +0000 Subject: [PATCH] Use global cursor style and colour options for modes instead of default, GitHub issue 4117. --- screen.c | 14 ++++++++++++++ tmux.h | 1 + window-copy.c | 1 + window.c | 10 +--------- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/screen.c b/screen.c index d51af6ac..a6a3fadc 100644 --- a/screen.c +++ b/screen.c @@ -170,6 +170,20 @@ screen_reset_tabs(struct screen *s) bit_set(s->tabs, i); } +/* Set default cursor style and colour from options. */ +void +screen_set_default_cursor(struct screen *s, struct options *oo) +{ + int c; + + c = options_get_number(oo, "cursor-colour"); + s->default_ccolour = c; + + c = options_get_number(oo, "cursor-style"); + s->default_mode = 0; + screen_set_cursor_style(c, &s->default_cstyle, &s->default_mode); +} + /* Set screen cursor style and mode. */ void screen_set_cursor_style(u_int style, enum screen_cursor_style *cstyle, diff --git a/tmux.h b/tmux.h index d8c720f9..5e86dac9 100644 --- a/tmux.h +++ b/tmux.h @@ -3014,6 +3014,7 @@ void screen_reinit(struct screen *); void screen_free(struct screen *); void screen_reset_tabs(struct screen *); void screen_reset_hyperlinks(struct screen *); +void screen_set_default_cursor(struct screen *, struct options *); void screen_set_cursor_style(u_int, enum screen_cursor_style *, int *); void screen_set_cursor_colour(struct screen *, int); int screen_set_title(struct screen *, const char *); diff --git a/window-copy.c b/window-copy.c index 35818644..d0541657 100644 --- a/window-copy.c +++ b/window-copy.c @@ -417,6 +417,7 @@ window_copy_common_init(struct window_mode_entry *wme) data->jumpchar = NULL; screen_init(&data->screen, screen_size_x(base), screen_size_y(base), 0); + screen_set_default_cursor(&data->screen, global_w_options); data->modekeys = options_get_number(wp->window->options, "mode-keys"); evtimer_set(&data->dragtimer, window_copy_scroll_timer, wme); diff --git a/window.c b/window.c index 6621f89b..06d37453 100644 --- a/window.c +++ b/window.c @@ -1686,15 +1686,7 @@ window_set_fill_character(struct window *w) void window_pane_default_cursor(struct window_pane *wp) { - struct screen *s = wp->screen; - int c; - - c = options_get_number(wp->options, "cursor-colour"); - s->default_ccolour = c; - - c = options_get_number(wp->options, "cursor-style"); - s->default_mode = 0; - screen_set_cursor_style(c, &s->default_cstyle, &s->default_mode); + screen_set_default_cursor(wp->screen, wp->options); } int