From 4bc0f6e7e9eac73f7a1221ed4c2854d12eb1cf7e Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sun, 11 Oct 2009 07:01:10 +0000 Subject: Clean up by introducing a wrapper struct for mouse clicks rather than passing three u_chars around. As a side-effect this fixes incorrectly rejecting high cursor positions (because it was comparing them as signed char), reported by Tom Doherty. --- server.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'server.c') diff --git a/server.c b/server.c index c724d186..cff3db3b 100644 --- a/server.c +++ b/server.c @@ -880,9 +880,9 @@ server_handle_client(struct client *c) struct timeval tv; struct key_binding *bd; struct keylist *keylist; + struct mouse_event mouse; int key, status, xtimeout, mode, isprefix; u_int i; - u_char mouse[3]; xtimeout = options_get_number(&c->session->options, "repeat-time"); if (xtimeout != 0 && c->flags & CLIENT_REPEAT) { @@ -894,7 +894,7 @@ server_handle_client(struct client *c) /* Process keys. */ keylist = options_get_data(&c->session->options, "prefix"); - while (tty_keys_next(&c->tty, &key, mouse) == 0) { + while (tty_keys_next(&c->tty, &key, &mouse) == 0) { if (c->session == NULL) return; @@ -922,10 +922,10 @@ server_handle_client(struct client *c) /* Check for mouse keys. */ if (key == KEYC_MOUSE) { if (options_get_number(oo, "mouse-select-pane")) { - window_set_active_at(w, mouse[1], mouse[2]); + window_set_active_at(w, mouse.x, mouse.y); wp = w->active; } - window_pane_mouse(wp, c, mouse[0], mouse[1], mouse[2]); + window_pane_mouse(wp, c, &mouse); continue; } -- cgit