diff --git a/tmux.h b/tmux.h index 955643d8..c98d4c51 100644 --- a/tmux.h +++ b/tmux.h @@ -1168,6 +1168,7 @@ struct tty { u_int mouse_last_x; u_int mouse_last_y; + u_int mouse_last_b; int mouse_drag_flag; void (*mouse_drag_update)(struct client *, struct mouse_event *); diff --git a/tty-keys.c b/tty-keys.c index 3ab7f184..f70b2c8d 100644 --- a/tty-keys.c +++ b/tty-keys.c @@ -893,7 +893,7 @@ tty_keys_mouse(struct tty *tty, const char *buf, size_t len, size_t *size, m->x = x; m->ly = tty->mouse_last_y; m->y = y; - m->lb = m->b; + m->lb = tty->mouse_last_b; m->b = b; m->sgr_type = sgr_type; m->sgr_b = sgr_b; @@ -901,6 +901,7 @@ tty_keys_mouse(struct tty *tty, const char *buf, size_t len, size_t *size, /* Update last mouse state. */ tty->mouse_last_x = x; tty->mouse_last_y = y; + tty->mouse_last_b = b; return (0); }