mirror of
https://github.com/tmate-io/tmate.git
synced 2024-11-07 16:54:01 +01:00
Instead of forcing mouse scroll to 1 in choose mode, scale it down
instead. Means modifier keys still increase the line count, just not as much. Based on a diff from Marcel Partap.
This commit is contained in:
parent
189017c078
commit
94ccc6aeaa
3
tmux.h
3
tmux.h
@ -1130,6 +1130,9 @@ LIST_HEAD(tty_terms, tty_term);
|
||||
#define MOUSE_WHEEL_UP 0
|
||||
#define MOUSE_WHEEL_DOWN 1
|
||||
|
||||
/* Mouse wheel multipler. */
|
||||
#define MOUSE_WHEEL_SCALE 3
|
||||
|
||||
/* Mouse event bits. */
|
||||
#define MOUSE_EVENT_DOWN 0x1
|
||||
#define MOUSE_EVENT_DRAG 0x2
|
||||
|
@ -752,11 +752,11 @@ tty_keys_mouse(struct tty *tty, const char *buf, size_t len, size_t *size)
|
||||
if (b & MOUSE_MASK_SHIFT)
|
||||
m->scroll = 1;
|
||||
else
|
||||
m->scroll = 3;
|
||||
m->scroll = MOUSE_WHEEL_SCALE;
|
||||
if (b & MOUSE_MASK_META)
|
||||
m->scroll *= 3;
|
||||
m->scroll *= MOUSE_WHEEL_SCALE;
|
||||
if (b & MOUSE_MASK_CTRL)
|
||||
m->scroll *= 3;
|
||||
m->scroll *= MOUSE_WHEEL_SCALE;
|
||||
|
||||
b &= MOUSE_MASK_BUTTONS;
|
||||
if (b == 0)
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user