summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Davenport <qball@gmpclient.org>2023-09-24 20:06:08 +0200
committerDave Davenport <qball@gmpclient.org>2023-09-24 20:06:08 +0200
commitb5f1e97e0f7468df48c5e3a2be6b34b7ff8b3efc (patch)
tree269311a20ebcb6aab74fb9a6ea17e1d494042423
parenta53daa68c4298fc64b17ea613705081c42c140c5 (diff)
[XCB] Try to be smarter with where mouse click started.
fixes: #1896
-rw-r--r--include/xcb-internal.h2
-rw-r--r--source/xcb.c6
2 files changed, 3 insertions, 5 deletions
diff --git a/include/xcb-internal.h b/include/xcb-internal.h
index 8b012a79..1e44cd5b 100644
--- a/include/xcb-internal.h
+++ b/include/xcb-internal.h
@@ -64,7 +64,7 @@ struct _xcb_stuff {
} xkb;
xcb_timestamp_t last_timestamp;
NkBindingsSeat *bindings_seat;
- gboolean mouse_seen;
+ uint32_t mouse_seen;
xcb_window_t focus_revert;
char *clipboard;
};
diff --git a/source/xcb.c b/source/xcb.c
index 62dddfbf..375cfcfc 100644
--- a/source/xcb.c
+++ b/source/xcb.c
@@ -1264,9 +1264,6 @@ static void main_loop_x11_event_handler_view(xcb_generic_event_t *event) {
case XCB_MOTION_NOTIFY: {
xcb_motion_notify_event_t *xme = (xcb_motion_notify_event_t *)event;
gboolean button_mask = xme->state & XCB_EVENT_MASK_BUTTON_1_MOTION;
- if (button_mask && config.click_to_exit == TRUE) {
- xcb->mouse_seen = TRUE;
- }
rofi_view_handle_mouse_motion(state, xme->event_x, xme->event_y,
!button_mask && config.hover_select);
break;
@@ -1285,6 +1282,7 @@ static void main_loop_x11_event_handler_view(xcb_generic_event_t *event) {
} else if (x11_button_to_nk_bindings_scroll(bpe->detail, &axis, &steps)) {
nk_bindings_seat_handle_scroll(xcb->bindings_seat, NULL, axis, steps);
}
+ xcb->mouse_seen++;
break;
}
case XCB_SELECTION_CLEAR: {
@@ -1347,7 +1345,7 @@ static void main_loop_x11_event_handler_view(xcb_generic_event_t *event) {
if (!xcb->mouse_seen) {
rofi_view_temp_click_to_exit(state, bre->event);
}
- xcb->mouse_seen = FALSE;
+ xcb->mouse_seen--;
}
break;
}