1
0
Fork 0
mirror of https://github.com/davatorium/rofi.git synced 2024-11-18 13:54:36 -05:00

[XCB] Try to be smarter with where mouse click started.

fixes: #1896
This commit is contained in:
Dave Davenport 2023-09-24 20:06:08 +02:00
parent a53daa68c4
commit b5f1e97e0f
2 changed files with 3 additions and 5 deletions

View file

@ -64,7 +64,7 @@ struct _xcb_stuff {
} xkb; } xkb;
xcb_timestamp_t last_timestamp; xcb_timestamp_t last_timestamp;
NkBindingsSeat *bindings_seat; NkBindingsSeat *bindings_seat;
gboolean mouse_seen; uint32_t mouse_seen;
xcb_window_t focus_revert; xcb_window_t focus_revert;
char *clipboard; char *clipboard;
}; };

View file

@ -1264,9 +1264,6 @@ static void main_loop_x11_event_handler_view(xcb_generic_event_t *event) {
case XCB_MOTION_NOTIFY: { case XCB_MOTION_NOTIFY: {
xcb_motion_notify_event_t *xme = (xcb_motion_notify_event_t *)event; xcb_motion_notify_event_t *xme = (xcb_motion_notify_event_t *)event;
gboolean button_mask = xme->state & XCB_EVENT_MASK_BUTTON_1_MOTION; 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, rofi_view_handle_mouse_motion(state, xme->event_x, xme->event_y,
!button_mask && config.hover_select); !button_mask && config.hover_select);
break; 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)) { } else if (x11_button_to_nk_bindings_scroll(bpe->detail, &axis, &steps)) {
nk_bindings_seat_handle_scroll(xcb->bindings_seat, NULL, axis, steps); nk_bindings_seat_handle_scroll(xcb->bindings_seat, NULL, axis, steps);
} }
xcb->mouse_seen++;
break; break;
} }
case XCB_SELECTION_CLEAR: { 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) { if (!xcb->mouse_seen) {
rofi_view_temp_click_to_exit(state, bre->event); rofi_view_temp_click_to_exit(state, bre->event);
} }
xcb->mouse_seen = FALSE; xcb->mouse_seen--;
} }
break; break;
} }