summaryrefslogtreecommitdiffstats
path: root/source/view.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/view.c')
-rw-r--r--source/view.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/source/view.c b/source/view.c
index 2fe21de8..db2890cc 100644
--- a/source/view.c
+++ b/source/view.c
@@ -1363,7 +1363,19 @@ gboolean rofi_view_trigger_action ( guint scope, gpointer user_data )
return FALSE;
}
widget_xy_to_relative ( target, &x, &y );
- return widget_trigger_action ( target, GPOINTER_TO_UINT ( user_data ), x, y );
+ switch ( widget_trigger_action ( target, GPOINTER_TO_UINT ( user_data ), x, y ) )
+ {
+ case WIDGET_TRIGGER_ACTION_RESULT_IGNORED:
+ return FALSE;
+ return TRUE;
+ case WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_END:
+ target = NULL;
+ case WIDGET_TRIGGER_ACTION_RESULT_GRAB_MOTION_BEGIN:
+ state->mouse.motion_target = target;
+ case WIDGET_TRIGGER_ACTION_RESULT_HANDLED:
+ return TRUE;
+ }
+ break;
}
}
return FALSE;
@@ -1502,7 +1514,7 @@ static int rofi_view_calculate_height ( RofiViewState *state )
return height;
}
-static gboolean textbox_sidebar_modi_trigger_action ( widget *wid, MouseBindingMouseDefaultAction action, gint x, gint y, G_GNUC_UNUSED void *user_data )
+static WidgetTriggerActionResult textbox_sidebar_modi_trigger_action ( widget *wid, MouseBindingMouseDefaultAction action, G_GNUC_UNUSED gint x, G_GNUC_UNUSED gint y, G_GNUC_UNUSED void *user_data )
{
RofiViewState *state = ( RofiViewState *) user_data;
unsigned int i;
@@ -1512,7 +1524,7 @@ static gboolean textbox_sidebar_modi_trigger_action ( widget *wid, MouseBindingM
}
}
if ( i == state->num_modi ) {
- return FALSE;
+ return WIDGET_TRIGGER_ACTION_RESULT_IGNORED;
}
switch ( action )
@@ -1521,13 +1533,13 @@ static gboolean textbox_sidebar_modi_trigger_action ( widget *wid, MouseBindingM
state->retv = MENU_QUICK_SWITCH | ( i & MENU_LOWER_MASK );
state->quit = TRUE;
state->skip_absorb = TRUE;
- return TRUE;
+ return WIDGET_TRIGGER_ACTION_RESULT_HANDLED;
case MOUSE_CLICK_UP:
case MOUSE_DCLICK_DOWN:
case MOUSE_DCLICK_UP:
break;
}
- return FALSE;
+ return WIDGET_TRIGGER_ACTION_RESULT_IGNORED;
}
// @TODO don't like this construction.