From 7af58f74b0a33c14927e1555c3b3f7cd21659293 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 1 Apr 2026 08:10:02 +0000 Subject: [PATCH] Fixed missing drag end detection and mouse button detection with modifiers. From Dane Jensen, reported by Joseph Tyson and Mark Kelly. --- server-client.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/server-client.c b/server-client.c index 95f6076c..8a4fe491 100644 --- a/server-client.c +++ b/server-client.c @@ -926,6 +926,7 @@ have_event: * End a mouse drag by passing a MouseDragEnd key corresponding * to the button that started the drag. */ + type = KEYC_TYPE_MOUSEDRAGEND; c->tty.mouse_drag_flag = 0; c->tty.mouse_slider_mpos = -1; } @@ -934,8 +935,8 @@ have_event: if (type == KEYC_TYPE_MOUSEMOVE && loc == KEYC_MOUSE_LOCATION_PANE) { key = KEYC_MOUSEMOVE_PANE; if (wp != NULL && - wp != w->active && - options_get_number(s->options, "focus-follows-mouse")) { + wp != w->active && + options_get_number(s->options, "focus-follows-mouse")) { window_set_active_pane(w, wp, 1); server_redraw_window_borders(w); server_status_window(w); @@ -964,24 +965,24 @@ have_event: } if (key == KEYC_UNKNOWN) { - /* Adjust the button number */ - if (b == MOUSE_BUTTON_1) + /* Adjust the button number. */ + if (MOUSE_BUTTONS(b) == MOUSE_BUTTON_1) bn = 1; - else if (b == MOUSE_BUTTON_2) + else if (MOUSE_BUTTONS(b) == MOUSE_BUTTON_2) bn = 2; - else if (b == MOUSE_BUTTON_3) + else if (MOUSE_BUTTONS(b) == MOUSE_BUTTON_3) bn = 3; - else if (b == MOUSE_BUTTON_6) + else if (MOUSE_BUTTONS(b) == MOUSE_BUTTON_6) bn = 6; - else if (b == MOUSE_BUTTON_7) + else if (MOUSE_BUTTONS(b) == MOUSE_BUTTON_7) bn = 7; - else if (b == MOUSE_BUTTON_8) + else if (MOUSE_BUTTONS(b) == MOUSE_BUTTON_8) bn = 8; - else if (b == MOUSE_BUTTON_9) + else if (MOUSE_BUTTONS(b) == MOUSE_BUTTON_9) bn = 9; - else if (b == MOUSE_BUTTON_10) + else if (MOUSE_BUTTONS(b) == MOUSE_BUTTON_10) bn = 10; - else if (b == MOUSE_BUTTON_11) + else if (MOUSE_BUTTONS(b) == MOUSE_BUTTON_11) bn = 11; else bn = 0;