diff options
author | Nicholas Marriott <nicm@openbsd.org> | 2009-10-11 07:01:10 +0000 |
---|---|---|
committer | Nicholas Marriott <nicm@openbsd.org> | 2009-10-11 07:01:10 +0000 |
commit | 4bc0f6e7e9eac73f7a1221ed4c2854d12eb1cf7e (patch) | |
tree | 2bafaa9c2cb171ff453fa7069ddc4286051f3e28 /window-choose.c | |
parent | f68ade7b1d1c3aa74a11a5eeed35ea409d5d63c7 (diff) |
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.
Diffstat (limited to 'window-choose.c')
-rw-r--r-- | window-choose.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/window-choose.c b/window-choose.c index acb6ab8a..c44fe88d 100644 --- a/window-choose.c +++ b/window-choose.c @@ -27,7 +27,7 @@ void window_choose_free(struct window_pane *); void window_choose_resize(struct window_pane *, u_int, u_int); void window_choose_key(struct window_pane *, struct client *, int); void window_choose_mouse( - struct window_pane *, struct client *, u_char, u_char, u_char); + struct window_pane *, struct client *, struct mouse_event *); void window_choose_redraw_screen(struct window_pane *); void window_choose_write_line( @@ -264,22 +264,22 @@ window_choose_key(struct window_pane *wp, unused struct client *c, int key) } void -window_choose_mouse(struct window_pane *wp, - unused struct client *c, u_char b, u_char x, u_char y) +window_choose_mouse( + struct window_pane *wp, unused struct client *c, struct mouse_event *m) { struct window_choose_mode_data *data = wp->modedata; struct screen *s = &data->screen; struct window_choose_mode_item *item; u_int idx; - if ((b & 3) == 3) + if ((m->b & 3) == 3) return; - if (x >= screen_size_x(s)) + if (m->x >= screen_size_x(s)) return; - if (y >= screen_size_y(s)) + if (m->y >= screen_size_y(s)) return; - idx = data->top + y; + idx = data->top + m->y; if (idx >= ARRAY_LENGTH(&data->list)) return; data->selected = idx; |