summaryrefslogtreecommitdiffstats
path: root/usr.bin/tmux/tty.c
diff options
context:
space:
mode:
authornicm <nicm@openbsd.org>2010-12-29 21:49:06 +0000
committernicm <nicm@openbsd.org>2010-12-29 21:49:06 +0000
commit065989380d8822c0be7afecac8e6ae1d644e96e0 (patch)
tree454db35b76366ff043d1f818e809fa8cf3baf1ff /usr.bin/tmux/tty.c
parentremove two unnecessary comments that snuck in with previous. (diff)
downloadwireguard-openbsd-065989380d8822c0be7afecac8e6ae1d644e96e0.tar.xz
wireguard-openbsd-065989380d8822c0be7afecac8e6ae1d644e96e0.zip
Support all four of the xterm mouse modes. Based on a diff from hsim at
gmx.li.
Diffstat (limited to 'usr.bin/tmux/tty.c')
-rw-r--r--usr.bin/tmux/tty.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/usr.bin/tmux/tty.c b/usr.bin/tmux/tty.c
index 31dbd4796b2..af567bae45f 100644
--- a/usr.bin/tmux/tty.c
+++ b/usr.bin/tmux/tty.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: tty.c,v 1.93 2010/11/22 21:13:13 nicm Exp $ */
+/* $OpenBSD: tty.c,v 1.94 2010/12/29 21:49:06 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -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) {