Send mouse down event immediately rather than waiting for double click

to finish which would now mean it was out of order. Reported by Mark
Kelly.
This commit is contained in:
nicm
2020-03-16 06:12:42 +00:00
parent 882d0b785d
commit d162ff48f3
3 changed files with 14 additions and 9 deletions

View File

@ -254,12 +254,12 @@ static void
input_key_mouse(struct window_pane *wp, struct mouse_event *m)
{
struct screen *s = wp->screen;
int mode = s->mode;
char buf[40];
size_t len;
u_int x, y;
if ((mode & ALL_MOUSE_MODES) == 0)
/* Ignore events if no mouse mode or the pane is not visible. */
if (m->ignore || (s->mode & ALL_MOUSE_MODES) == 0)
return;
if (cmd_mouse_at(wp, m, &x, &y, 0) != 0)
return;
@ -267,8 +267,7 @@ input_key_mouse(struct window_pane *wp, struct mouse_event *m)
return;
/* If this pane is not in button or all mode, discard motion events. */
if (MOUSE_DRAG(m->b) &&
(mode & (MODE_MOUSE_BUTTON|MODE_MOUSE_ALL)) == 0)
if (MOUSE_DRAG(m->b) && (s->mode & MOTION_MOUSE_MODES) == 0)
return;
/*
@ -280,13 +279,13 @@ input_key_mouse(struct window_pane *wp, struct mouse_event *m)
if (m->sgr_type != ' ') {
if (MOUSE_DRAG(m->sgr_b) &&
MOUSE_BUTTONS(m->sgr_b) == 3 &&
(~mode & MODE_MOUSE_ALL))
(~s->mode & MODE_MOUSE_ALL))
return;
} else {
if (MOUSE_DRAG(m->b) &&
MOUSE_BUTTONS(m->b) == 3 &&
MOUSE_BUTTONS(m->lb) == 3 &&
(~mode & MODE_MOUSE_ALL))
(~s->mode & MODE_MOUSE_ALL))
return;
}