Support all four of the xterm mouse modes. Based on a diff from hsim at

gmx.li.
This commit is contained in:
Nicholas Marriott
2010-12-29 21:49:06 +00:00
parent 230e39ec35
commit f7c42c21ba
8 changed files with 67 additions and 29 deletions

24
tty.c
View File

@ -403,17 +403,25 @@ tty_update_mode(struct tty *tty, int mode)
else
tty_putcode(tty, TTYC_CIVIS);
}
if (changed & (MODE_MOUSE|MODE_MOUSEMOTION)) {
if (mode & MODE_MOUSE) {
if (mode & MODE_MOUSEMOTION)
tty_puts(tty, "\033[?1003h");
else
if (changed & ALL_MOUSE_MODES) {
if (mode & ALL_MOUSE_MODES) {
if (mode & MODE_MOUSE_STANDARD)
tty_puts(tty, "\033[?1000h");
else if (mode & MODE_MOUSE_HIGHLIGHT)
tty_puts(tty, "\033[?1001h");
else if (mode & MODE_MOUSE_BUTTON)
tty_puts(tty, "\033[?1002h");
else if (mode & MODE_MOUSE_ANY)
tty_puts(tty, "\033[?1003h");
} else {
if (mode & MODE_MOUSEMOTION)
tty_puts(tty, "\033[?1003l");
else
if (tty->mode & MODE_MOUSE_STANDARD)
tty_puts(tty, "\033[?1000l");
else if (tty->mode & MODE_MOUSE_HIGHLIGHT)
tty_puts(tty, "\033[?1001l");
else if (tty->mode & MODE_MOUSE_BUTTON)
tty_puts(tty, "\033[?1002l");
else if (tty->mode & MODE_MOUSE_ANY)
tty_puts(tty, "\033[?1003l");
}
}
if (changed & MODE_KKEYPAD) {