Correct handling of mouse up events (don't ignore all but the last

released button), and always process down event for double click. From
Rudy Dellomas III in GitHub issue 3919.
pull/3933/head
nicm 2024-04-10 07:29:15 +00:00
parent 424f13fe13
commit c62a9ca16b
1 changed files with 6 additions and 1 deletions

View File

@ -626,6 +626,8 @@ server_client_check_mouse(struct client *c, struct key_event *event)
} else if (MOUSE_RELEASE(m->b)) {
type = UP;
x = m->x, y = m->y, b = m->lb;
if (m->sgr_type == 'm')
b = m->sgr_b;
log_debug("up at %u,%u", x, y);
} else {
if (c->flags & CLIENT_DOUBLECLICK) {
@ -646,7 +648,10 @@ server_client_check_mouse(struct client *c, struct key_event *event)
log_debug("triple-click at %u,%u", x, y);
goto have_event;
}
} else {
}
/* DOWN is the only remaining event type. */
if (type == NOTYPE) {
type = DOWN;
x = m->x, y = m->y, b = m->b;
log_debug("down at %u,%u", x, y);