diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c index fb197aea9..f6dc75c77 100644 --- a/src/bin/e_gadcon.c +++ b/src/bin/e_gadcon.c @@ -540,6 +540,7 @@ e_gadcon_edit_begin(E_Gadcon *gc) E_OBJECT_CHECK(gc); E_OBJECT_TYPE_CHECK(gc, E_GADCON_TYPE); e_gadcon_layout_freeze(gc->o_container); + e_shelf_locked_set(gc->shelf, 1); gc->editing = 1; for (l = gc->clients; l; l = l->next) { @@ -568,6 +569,7 @@ e_gadcon_edit_end(E_Gadcon *gc) e_gadcon_client_edit_end(gcc); } e_gadcon_layout_thaw(gc->o_container); + e_shelf_locked_set(gc->shelf, 0); } EAPI void @@ -821,6 +823,7 @@ e_gadcon_client_edit_begin(E_Gadcon_Client *gcc) if (gcc->o_control) return; + e_shelf_locked_set(gcc->gadcon->shelf, 1); gcc->gadcon->editing = 1; gcc->o_control = edje_object_add(gcc->gadcon->evas); evas_object_layer_set(gcc->o_control, 100); @@ -942,6 +945,7 @@ e_gadcon_client_edit_end(E_Gadcon_Client *gcc) if (client->o_control) return; } gcc->gadcon->editing = 0; + e_shelf_locked_set(gcc->gadcon->shelf, 0); } EAPI void @@ -1155,6 +1159,9 @@ e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu, int f E_OBJECT_CHECK(gcc); E_OBJECT_TYPE_CHECK(gcc, E_GADCON_CLIENT_TYPE); + e_shelf_locked_set(gcc->gadcon->shelf, 1); + e_menu_post_deactivate_callback_set(menu, _e_gadcon_client_cb_menu_post, gcc); + if (!gcc->gadcon->toolbar) { mn = e_menu_new(); @@ -1584,8 +1591,9 @@ _e_gadcon_cb_client_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *e E_Menu_Item *mi; int cx, cy; - zone = e_util_zone_current_get(e_manager_current_get()), + zone = e_util_zone_current_get(e_manager_current_get()); + e_shelf_locked_set(gcc->gadcon->shelf, 1); mn = e_menu_new(); e_menu_post_deactivate_callback_set(mn, _e_gadcon_client_cb_menu_post, gcc); @@ -2157,6 +2165,7 @@ _e_gadcon_client_cb_menu_post(void *data, E_Menu *m) E_Gadcon_Client *gcc; gcc = data; + e_shelf_locked_set(gcc->gadcon->shelf, 0); if (!gcc->menu) return; e_object_del(E_OBJECT(gcc->menu)); gcc->menu = NULL; @@ -2177,6 +2186,7 @@ _e_gadcon_client_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *even E_Menu *mn; int cx, cy, cw, ch; + e_shelf_locked_set(gcc->gadcon->shelf, 1); mn = e_menu_new(); e_menu_post_deactivate_callback_set(mn, _e_gadcon_client_cb_menu_post, gcc);