summaryrefslogtreecommitdiffstats
path: root/server-client.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2011-05-04 18:10:28 +0000
committerNicholas Marriott <nicm@openbsd.org>2011-05-04 18:10:28 +0000
commitb0a88ebeadd56ebcb0cdbe9967a869d361b96c6f (patch)
tree828e65f5b111ad53a9097abb4411d102b0a66da1 /server-client.c
parenta70df70d20381c57d26448c7526940145713234f (diff)
Change window with mouse wheel over status line if mouse-select-window
is on, from marcel partap.
Diffstat (limited to 'server-client.c')
-rw-r--r--server-client.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/server-client.c b/server-client.c
index 454859e6..f21f9c36 100644
--- a/server-client.c
+++ b/server-client.c
@@ -325,11 +325,24 @@ server_client_handle_key(int key, struct mouse_event *mouse, void *data)
server_redraw_window_borders(w);
wp = w->active;
}
- if (mouse->y + 1 == c->tty.sy && mouse->b == MOUSE_UP &&
+ if (mouse->y + 1 == c->tty.sy &&
options_get_number(oo, "mouse-select-window") &&
options_get_number(oo, "status")) {
- status_set_window_at(c, mouse->x);
- return;
+ if (mouse->b == MOUSE_UP) {
+ status_set_window_at(c, mouse->x);
+ return;
+ }
+ if (mouse->b & MOUSE_45) {
+ if ((mouse->b & MOUSE_BUTTON) == MOUSE_1) {
+ session_previous(c->session, 0);
+ server_redraw_session(s);
+ }
+ if ((mouse->b & MOUSE_BUTTON) == MOUSE_2) {
+ session_next(c->session, 0);
+ server_redraw_session(s);
+ }
+ return;
+ }
}
window_pane_mouse(wp, c->session, mouse);
return;