diff options
author | nicm <nicm> | 2015-05-19 08:48:37 +0000 |
---|---|---|
committer | nicm <nicm> | 2015-05-19 08:48:37 +0000 |
commit | 2c53b23d5968da2e796ead6ed9f8ff3c33b8bbfb (patch) | |
tree | 518f5233b7d8a20c23c80bdc813f4c0b25fb900a /tty.c | |
parent | 3f4ee98162cd5bb7000f93fec0e631e123b1281d (diff) | |
download | rtmux-2c53b23d5968da2e796ead6ed9f8ff3c33b8bbfb.tar.gz rtmux-2c53b23d5968da2e796ead6ed9f8ff3c33b8bbfb.tar.bz2 rtmux-2c53b23d5968da2e796ead6ed9f8ff3c33b8bbfb.zip |
In terminfo, sometimes cvvis implies cnorm and sometimes it doesn't, so
don't assume it does. Fixes missing cursor with emacs-in-tmux-in-tmux.
Diffstat (limited to 'tty.c')
-rw-r--r-- | tty.c | 19 |
1 files changed, 11 insertions, 8 deletions
@@ -507,14 +507,17 @@ tty_update_mode(struct tty *tty, int mode, struct screen *s) mode &= ~MODE_CURSOR; changed = mode ^ tty->mode; - if (changed & (MODE_CURSOR|MODE_BLINKING)) { - if (mode & MODE_CURSOR) { - if (mode & MODE_BLINKING && - tty_term_has(tty->term, TTYC_CVVIS)) - tty_putcode(tty, TTYC_CVVIS); - else - tty_putcode(tty, TTYC_CNORM); - } else + if (changed & MODE_BLINKING) { + if (tty_term_has(tty->term, TTYC_CVVIS)) + tty_putcode(tty, TTYC_CVVIS); + else + tty_putcode(tty, TTYC_CNORM); + changed |= MODE_CURSOR; + } + if (changed & MODE_CURSOR) { + if (mode & MODE_CURSOR) + tty_putcode(tty, TTYC_CNORM); + else tty_putcode(tty, TTYC_CIVIS); } if (s != NULL && tty->cstyle != s->cstyle) { |