mirror of
https://github.com/tmate-io/tmate.git
synced 2025-02-08 22:40:02 +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_UP 0
|
||||||
#define MOUSE_WHEEL_DOWN 1
|
#define MOUSE_WHEEL_DOWN 1
|
||||||
|
|
||||||
|
/* Mouse wheel multipler. */
|
||||||
|
#define MOUSE_WHEEL_SCALE 3
|
||||||
|
|
||||||
/* Mouse event bits. */
|
/* Mouse event bits. */
|
||||||
#define MOUSE_EVENT_DOWN 0x1
|
#define MOUSE_EVENT_DOWN 0x1
|
||||||
#define MOUSE_EVENT_DRAG 0x2
|
#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)
|
if (b & MOUSE_MASK_SHIFT)
|
||||||
m->scroll = 1;
|
m->scroll = 1;
|
||||||
else
|
else
|
||||||
m->scroll = 3;
|
m->scroll = MOUSE_WHEEL_SCALE;
|
||||||
if (b & MOUSE_MASK_META)
|
if (b & MOUSE_MASK_META)
|
||||||
m->scroll *= 3;
|
m->scroll *= MOUSE_WHEEL_SCALE;
|
||||||
if (b & MOUSE_MASK_CTRL)
|
if (b & MOUSE_MASK_CTRL)
|
||||||
m->scroll *= 3;
|
m->scroll *= MOUSE_WHEEL_SCALE;
|
||||||
|
|
||||||
b &= MOUSE_MASK_BUTTONS;
|
b &= MOUSE_MASK_BUTTONS;
|
||||||
if (b == 0)
|
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 window_choose_mode_data *data = wp->modedata;
|
||||||
struct screen *s = &data->screen;
|
struct screen *s = &data->screen;
|
||||||
struct window_choose_mode_item *item;
|
struct window_choose_mode_item *item;
|
||||||
u_int idx;
|
u_int idx, i, n;
|
||||||
|
|
||||||
if (m->event == MOUSE_EVENT_WHEEL) {
|
if (m->event == MOUSE_EVENT_WHEEL) {
|
||||||
/*
|
/*
|
||||||
* Don't use m->scroll and just move line-by-line or it's
|
* Multiple line scrolling by default is annoying, so scale
|
||||||
* annoying.
|
* m->scroll back down.
|
||||||
*/
|
*/
|
||||||
if (m->wheel == MOUSE_WHEEL_UP)
|
n = m->scroll;
|
||||||
window_choose_key(wp, sess, KEYC_UP);
|
if (n >= MOUSE_WHEEL_SCALE)
|
||||||
else
|
n /= MOUSE_WHEEL_SCALE;
|
||||||
window_choose_key(wp, sess, KEYC_DOWN);
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user