From c401c91ad9f1ef8ea50b11762856a458de525bf9 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 3 Feb 2022 07:38:17 +0000 Subject: Update focus when active pane changes after pane destroyed. --- window.c | 1 + 1 file changed, 1 insertion(+) (limited to 'window.c') diff --git a/window.c b/window.c index d7fc3bf4..2ca3833c 100644 --- a/window.c +++ b/window.c @@ -754,6 +754,7 @@ window_lost_pane(struct window *w, struct window_pane *wp) if (w->active != NULL) { w->active->flags |= PANE_CHANGED; notify_window("window-pane-changed", w); + window_update_focus(w); } } else if (wp == w->last) w->last = NULL; -- cgit From e6e737ac0bf9a5be729b5c71f3a582355432d041 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 16 Mar 2022 17:00:17 +0000 Subject: Add an option to set the character used for unused areas of the terminal, GitHub issue 3110. --- window.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'window.c') diff --git a/window.c b/window.c index 2ca3833c..b14a9c60 100644 --- a/window.c +++ b/window.c @@ -331,6 +331,7 @@ window_create(u_int sx, u_int sy, u_int xpixel, u_int ypixel) w->id = next_window_id++; RB_INSERT(windows, &windows, w); + window_set_fill_character(w); window_update_activity(w); log_debug("%s: @%u create %ux%u (%ux%u)", __func__, w->id, sx, sy, @@ -362,6 +363,7 @@ window_destroy(struct window *w) event_del(&w->offset_timer); options_free(w->options); + free(w->fill_character); free(w->name); free(w); @@ -1589,3 +1591,20 @@ window_pane_update_used_data(struct window_pane *wp, size = EVBUFFER_LENGTH(wp->event->input) - used; wpo->used += size; } + +void +window_set_fill_character(struct window *w) +{ + const char *value; + struct utf8_data *ud; + + free(w->fill_character); + w->fill_character = NULL; + + value = options_get_string(w->options, "fill-character"); + if (*value != '\0' && utf8_isvalid(value)) { + ud = utf8_fromcstr(value); + if (ud != NULL && ud[0].width == 1) + w->fill_character = ud; + } +} -- cgit From 3a6d82b7c8d4254fa87959d8cf19b313f5e05480 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 6 Apr 2022 16:39:46 +0100 Subject: Some style nits. --- window.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'window.c') diff --git a/window.c b/window.c index bce8913a..c0cd9bdc 100644 --- a/window.c +++ b/window.c @@ -1056,7 +1056,7 @@ window_pane_resize(struct window_pane *wp, u_int sx, u_int sy) if (sx == wp->sx && sy == wp->sy) return; - r = xmalloc (sizeof *r); + r = xmalloc(sizeof *r); r->sx = sx; r->sy = sy; r->osx = wp->sx; -- cgit From 0a8f356c7278dba34a526adea03561f2063df359 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 30 May 2022 12:55:25 +0000 Subject: Spacing/style nits. --- window.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'window.c') diff --git a/window.c b/window.c index b14a9c60..f14c3bc7 100644 --- a/window.c +++ b/window.c @@ -1046,7 +1046,7 @@ window_pane_resize(struct window_pane *wp, u_int sx, u_int sy) if (sx == wp->sx && sy == wp->sy) return; - r = xmalloc (sizeof *r); + r = xmalloc(sizeof *r); r->sx = sx; r->sy = sy; r->osx = wp->sx; -- cgit From d9f84854ac01c8d4f6d5507e88d1dc7bcdd99558 Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 17 Jun 2022 07:28:05 +0000 Subject: Check cursor options when a pane is created, not just when they are changed. --- window.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'window.c') diff --git a/window.c b/window.c index f14c3bc7..2be5d5e6 100644 --- a/window.c +++ b/window.c @@ -933,6 +933,7 @@ window_pane_create(struct window *w, u_int sx, u_int sy, u_int hlimit) screen_init(&wp->base, sx, sy, hlimit); wp->screen = &wp->base; + window_pane_default_cursor(wp); screen_init(&wp->status_screen, 1, 1, 0); @@ -1608,3 +1609,17 @@ window_set_fill_character(struct window *w) w->fill_character = ud; } } + +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); +} -- cgit