From f7c42c21bacf84af52079b239a18294851fbdb3a Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 29 Dec 2010 21:49:06 +0000 Subject: Support all four of the xterm mouse modes. Based on a diff from hsim at gmx.li. --- tty.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'tty.c') diff --git a/tty.c b/tty.c index 63f6127f..f7698708 100644 --- a/tty.c +++ b/tty.c @@ -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) { -- cgit