disable binding activation when grab dialog, menus, or dnd is active

these are all cases where bindings should fail to activate in order to
avoid interfering with current operations

also fixes an issue where attempting to add or modify an existing
mouse/key/wheel binding would fail as a result of that binding activating
while the grab dialog was active
devs/captainigloo/eglfs_rpi
Mike Blumenkrantz 7 years ago
parent 8500517e34
commit 194b1ab336
  1. 3
      src/bin/e_dnd.c
  2. 2
      src/bin/e_grab_dialog.c
  3. 2
      src/bin/e_menu.c

@ -188,7 +188,7 @@ _e_drag_finalize(E_Drag *drag, E_Drag_Type type, int x, int y)
}
#endif
}
e_bindings_disabled_set(1);
_drag_current = drag;
return 1;
}
@ -1158,6 +1158,7 @@ _e_drag_free(E_Drag *drag)
#endif
if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
e_comp_ungrab_input(1, 1);
e_bindings_disabled_set(0);
_drag_win = 0;
}

@ -80,6 +80,7 @@ _e_grab_dialog_free(E_Grab_Dialog *eg)
e_comp_ungrab_input(1, 1);
}
E_FREE_LIST(eg->handlers, ecore_event_handler_del);
e_bindings_disabled_set(0);
e_object_del(E_OBJECT(eg->dia));
free(eg);
@ -162,6 +163,7 @@ e_grab_dialog_show(Evas_Object *parent, Eina_Bool is_mouse, Ecore_Event_Handler_
}
e_dialog_show(eg->dia);
evas_object_layer_set(e_win_client_get(eg->dia->win)->frame, E_LAYER_CLIENT_PRIO);
e_bindings_disabled_set(1);
return eg;
}

@ -1186,6 +1186,7 @@ e_menu_idler_before(void)
{
e_comp_ungrab_input(1, 1);
_e_menu_win = 0;
e_bindings_disabled_set(0);
}
}
}
@ -1880,6 +1881,7 @@ _e_menu_activate_internal(E_Menu *m, E_Zone *zone)
_e_menu_win = 0;
return;
}
e_bindings_disabled_set(1);
}
m->zone = zone;
if (!m->active)

Loading…
Cancel
Save