summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/view.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/source/view.c b/source/view.c
index f5102a75..6d04503f 100644
--- a/source/view.c
+++ b/source/view.c
@@ -1944,8 +1944,13 @@ void rofi_view_trigger_action(RofiViewState *state, BindingsScope scope,
case SCOPE_MOUSE_SCROLLBAR:
case SCOPE_MOUSE_MODE_SWITCHER: {
gint x = state->mouse.x, y = state->mouse.y;
- widget *target = widget_find_mouse_target(WIDGET(state->main_window),
- (WidgetType)scope, x, y);
+ // If we already captured a motion, always forward action to this widget.
+ widget *target = state->mouse.motion_target;
+ // If we have not a previous captured motion, lookup widget.
+ if (target == NULL) {
+ target = widget_find_mouse_target(WIDGET(state->main_window),
+ (WidgetType)scope, x, y);
+ }
if (target == NULL) {
return;
}