diff options
author | nicm <nicm> | 2024-04-10 07:29:15 +0000 |
---|---|---|
committer | nicm <nicm> | 2024-04-10 07:29:15 +0000 |
commit | c62a9ca16b8fa199904c7628f0cb95c50593af6f (patch) | |
tree | b79faa5cfee046b32e562e1ec3d105ba945808b2 /server-client.c | |
parent | 424f13fe13036e75b1c80e7751b81529f4cd8e15 (diff) |
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.
Diffstat (limited to 'server-client.c')
-rw-r--r-- | server-client.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/server-client.c b/server-client.c index 5680594a..15f8e890 100644 --- a/server-client.c +++ b/server-client.c @@ -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); |