From a2fc2a986eedc5ac7c83ae21618acedcb7b7aab8 Mon Sep 17 00:00:00 2001 From: tokyo4j Date: Thu, 15 Aug 2024 01:18:57 +0900 Subject: [PATCH] render: follow cursor.unfocused-style regardless of cursor.style Before this commit, cursor.unfocused-style was effective only with cursor.style=block --- CHANGELOG.md | 5 +++++ render.c | 28 ++++++++++++++-------------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 625ca4dd..00cf0b63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -57,6 +57,11 @@ ## Unreleased ### Added ### Changed + +* `cursor.unfocused-style` is now effective even when `cursor.style` + is not `block`. + + ### Deprecated ### Removed ### Fixed diff --git a/render.c b/render.c index d9630983..d9317b68 100644 --- a/render.c +++ b/render.c @@ -591,22 +591,22 @@ draw_cursor(const struct terminal *term, const struct cell *cell, pixman_color_t text_color; cursor_colors_for_cell(term, cell, fg, bg, &cursor_color, &text_color); + if (unlikely(!term->kbd_focus)) { + switch (term->conf->cursor.unfocused_style) { + case CURSOR_UNFOCUSED_UNCHANGED: + break; + + case CURSOR_UNFOCUSED_HOLLOW: + draw_hollow_block(term, pix, &cursor_color, x, y, cols); + return; + + case CURSOR_UNFOCUSED_NONE: + return; + } + } + switch (term->cursor_style) { case CURSOR_BLOCK: - if (unlikely(!term->kbd_focus)) { - switch (term->conf->cursor.unfocused_style) { - case CURSOR_UNFOCUSED_UNCHANGED: - break; - - case CURSOR_UNFOCUSED_HOLLOW: - draw_hollow_block(term, pix, &cursor_color, x, y, cols); - return; - - case CURSOR_UNFOCUSED_NONE: - return; - } - } - if (likely(term->cursor_blink.state == CURSOR_BLINK_ON) || !term->kbd_focus) {