From 194b1ab336fd0b9812c4e82bdf60de1885821a7b Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 22 Jan 2016 12:55:32 -0500 Subject: [PATCH] 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 --- src/bin/e_dnd.c | 3 ++- src/bin/e_grab_dialog.c | 2 ++ src/bin/e_menu.c | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c index b0e9fbd1d..53a229af2 100644 --- a/src/bin/e_dnd.c +++ b/src/bin/e_dnd.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; } diff --git a/src/bin/e_grab_dialog.c b/src/bin/e_grab_dialog.c index c00ac5f45..37de7b4bd 100644 --- a/src/bin/e_grab_dialog.c +++ b/src/bin/e_grab_dialog.c @@ -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; } diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c index 7a1dbde0b..cf686cafa 100644 --- a/src/bin/e_menu.c +++ b/src/bin/e_menu.c @@ -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)