aboutsummaryrefslogtreecommitdiff
path: root/window-choose.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2014-06-18 09:31:07 +0100
committerNicholas Marriott <nicholas.marriott@gmail.com>2014-06-18 09:31:07 +0100
commit77f582ff137808cc3743ad545f63422cc8e71a71 (patch)
tree5737aa67c96dcd11d3474989889189732e374900 /window-choose.c
parentf5973b77763e3f8da8e8f6483464f6f4bc2f3981 (diff)
parent92af7f5901bd944e385e7fdbe8696b2c911ed776 (diff)
downloadrtmux-77f582ff137808cc3743ad545f63422cc8e71a71.tar.gz
rtmux-77f582ff137808cc3743ad545f63422cc8e71a71.tar.bz2
rtmux-77f582ff137808cc3743ad545f63422cc8e71a71.zip
Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code
Diffstat (limited to 'window-choose.c')
-rw-r--r--window-choose.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/window-choose.c b/window-choose.c
index 86f37ed5..23e77b32 100644
--- a/window-choose.c
+++ b/window-choose.c
@@ -721,17 +721,22 @@ window_choose_mouse(struct window_pane *wp, struct session *sess,
struct window_choose_mode_data *data = wp->modedata;
struct screen *s = &data->screen;
struct window_choose_mode_item *item;
- u_int idx;
+ u_int idx, i, n;
if (m->event == MOUSE_EVENT_WHEEL) {
/*
- * Don't use m->scroll and just move line-by-line or it's
- * annoying.
+ * Multiple line scrolling by default is annoying, so scale
+ * m->scroll back down.
*/
- if (m->wheel == MOUSE_WHEEL_UP)
- window_choose_key(wp, sess, KEYC_UP);
- else
- window_choose_key(wp, sess, KEYC_DOWN);
+ n = m->scroll;
+ if (n >= MOUSE_WHEEL_SCALE)
+ n /= MOUSE_WHEEL_SCALE;
+ for (i = 0; i < n; i++) {
+ if (m->wheel == MOUSE_WHEEL_UP)
+ window_choose_key(wp, sess, KEYC_UP);
+ else
+ window_choose_key(wp, sess, KEYC_DOWN);
+ }
return;
}