Try to turn on less-capable mouse modes when turning on more-capable, to

increase the chances we get something even if the terminal doesn't support
the one we really want. GitHub issue 3020.
pull/3023/head
nicm 2021-12-31 11:35:49 +00:00
parent 9aad945f7e
commit e6e3c75ed7
1 changed files with 9 additions and 16 deletions

25
tty.c
View File

@ -791,26 +791,19 @@ tty_update_mode(struct tty *tty, int mode, struct screen *s)
if ((changed & ALL_MOUSE_MODES) && tty_term_has(term, TTYC_KMOUS)) {
/*
* If the mouse modes have changed, clear any that are set and
* apply again. There are differences in how terminals track
* the various bits.
* If the mouse modes have changed, clear then all and apply
* again. There are differences in how terminals track the
* various bits.
*/
if (tty->mode & MODE_MOUSE_SGR)
tty_puts(tty, "\033[?1006l");
if (tty->mode & MODE_MOUSE_STANDARD)
tty_puts(tty, "\033[?1000l");
if (tty->mode & MODE_MOUSE_BUTTON)
tty_puts(tty, "\033[?1002l");
if (tty->mode & MODE_MOUSE_ALL)
tty_puts(tty, "\033[?1003l");
tty_puts(tty, "\033[?1006l\033[?1000l\033[?1002l\033[?1003l");
if (mode & ALL_MOUSE_MODES)
tty_puts(tty, "\033[?1006h");
if (mode & MODE_MOUSE_STANDARD)
tty_puts(tty, "\033[?1000h");
if (mode & MODE_MOUSE_BUTTON)
tty_puts(tty, "\033[?1002h");
if (mode & MODE_MOUSE_ALL)
tty_puts(tty, "\033[?1003h");
tty_puts(tty, "\033[?1000h\033[?1002h\033[?1003h");
if (mode & MODE_MOUSE_BUTTON)
tty_puts(tty, "\033[?1000h\033[?1002h");
else if (mode & MODE_MOUSE_STANDARD)
tty_puts(tty, "\033[?1000h");
}
if (changed & MODE_BRACKETPASTE) {
if (mode & MODE_BRACKETPASTE)