1 |
From 2c53b23d5968da2e796ead6ed9f8ff3c33b8bbfb Mon Sep 17 00:00:00 2001 |
2 |
From: nicm <nicm> |
3 |
Date: Tue, 19 May 2015 08:48:37 +0000 |
4 |
Subject: [PATCH] In terminfo, sometimes cvvis implies cnorm and sometimes it |
5 |
doesn't, so don't assume it does. Fixes missing cursor with |
6 |
emacs-in-tmux-in-tmux. |
7 |
|
8 |
--- |
9 |
tty.c | 19 +++++++++++-------- |
10 |
1 file changed, 11 insertions(+), 8 deletions(-) |
11 |
|
12 |
diff --git a/tty.c b/tty.c |
13 |
index a58ca93..63380c2 100644 |
14 |
--- a/tty.c |
15 |
+++ b/tty.c |
16 |
@@ -507,14 +507,17 @@ tty_update_mode(struct tty *tty, int mode, struct screen *s) |
17 |
mode &= ~MODE_CURSOR; |
18 |
|
19 |
changed = mode ^ tty->mode; |
20 |
- if (changed & (MODE_CURSOR|MODE_BLINKING)) { |
21 |
- if (mode & MODE_CURSOR) { |
22 |
- if (mode & MODE_BLINKING && |
23 |
- tty_term_has(tty->term, TTYC_CVVIS)) |
24 |
- tty_putcode(tty, TTYC_CVVIS); |
25 |
- else |
26 |
- tty_putcode(tty, TTYC_CNORM); |
27 |
- } else |
28 |
+ if (changed & MODE_BLINKING) { |
29 |
+ if (tty_term_has(tty->term, TTYC_CVVIS)) |
30 |
+ tty_putcode(tty, TTYC_CVVIS); |
31 |
+ else |
32 |
+ tty_putcode(tty, TTYC_CNORM); |
33 |
+ changed |= MODE_CURSOR; |
34 |
+ } |
35 |
+ if (changed & MODE_CURSOR) { |
36 |
+ if (mode & MODE_CURSOR) |
37 |
+ tty_putcode(tty, TTYC_CNORM); |
38 |
+ else |
39 |
tty_putcode(tty, TTYC_CIVIS); |
40 |
} |
41 |
if (s != NULL && tty->cstyle != s->cstyle) { |
42 |
-- |
43 |
2.4.5 |
44 |
|