From f4e5baa123990053df9e1e0746e2e2d4d76b6c92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Mon, 16 Dec 2019 21:33:22 +0100 Subject: [PATCH] term: disable cursor blink on unfocus, and re-enable on focus --- terminal.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/terminal.c b/terminal.c index 0c302a51..493dcaa2 100644 --- a/terminal.c +++ b/terminal.c @@ -1326,17 +1326,25 @@ term_restore_cursor(struct terminal *term) void term_focus_in(struct terminal *term) { - if (!term->focus_events) - return; - term_to_slave(term, "\033[I", 3); + if (term->cursor_blink.active) + cursor_blink_start_timer(term); + + if (term->focus_events) + term_to_slave(term, "\033[I", 3); + + cursor_refresh(term); } void term_focus_out(struct terminal *term) { - if (!term->focus_events) - return; - term_to_slave(term, "\033[O", 3); + if (term->cursor_blink.active) + cursor_blink_stop_timer(term); + + if (term->focus_events) + term_to_slave(term, "\033[O", 3); + + cursor_refresh(term); } static int