diff options
author | Thomas <thomas@xteddy.org> | 2013-10-11 14:33:29 +0100 |
---|---|---|
committer | Thomas <thomas@xteddy.org> | 2013-10-11 14:33:29 +0100 |
commit | 7f479ffdce8f49f6c57d575b708c4cbe8cbe18df (patch) | |
tree | c0b1ddfb340c9bd59bbc02e83f30bf34aeb29a88 /tty-keys.c | |
parent | c190c73240576aa2a8274a305844f1fa7fcb0e71 (diff) | |
parent | 4901d9ddc8d8c33ecdca363dcb67e66482745fa5 (diff) | |
download | rtmux-7f479ffdce8f49f6c57d575b708c4cbe8cbe18df.tar.gz rtmux-7f479ffdce8f49f6c57d575b708c4cbe8cbe18df.tar.bz2 rtmux-7f479ffdce8f49f6c57d575b708c4cbe8cbe18df.zip |
Merge branch 'obsd-master' into mtemp
Diffstat (limited to 'tty-keys.c')
-rw-r--r-- | tty-keys.c | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -676,11 +676,17 @@ tty_keys_mouse(struct tty *tty, const char *buf, size_t len, size_t *size) log_debug("mouse input: %.*s", (int) *size, buf); /* Check and return the mouse input. */ - if (b < 32 || x < 33 || y < 33) + if (b < 32) return (-1); b -= 32; - x -= 33; - y -= 33; + if (x >= 33) + x -= 33; + else + x = 256 - x; + if (y >= 33) + y -= 33; + else + y = 256 - y; } else if (buf[2] == '<') { /* Read the three inputs. */ *size = 3; @@ -740,6 +746,8 @@ tty_keys_mouse(struct tty *tty, const char *buf, size_t len, size_t *size) m->sgr = sgr; m->sgr_xb = sgr_b; m->sgr_rel = sgr_rel; + m->x = x; + m->y = y; if (b & 64) { /* wheel button */ b &= 3; if (b == 0) @@ -767,8 +775,6 @@ tty_keys_mouse(struct tty *tty, const char *buf, size_t len, size_t *size) } m->button = (b & 3); } - m->x = x; - m->y = y; return (0); } |