From 27c872e102446c18f7ce592558c3f87528d46701 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 23 May 2013 09:40:02 +0100 Subject: [PATCH] fix gadman hover dnd --- src/modules/gadman/e_mod_gadman.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/modules/gadman/e_mod_gadman.c b/src/modules/gadman/e_mod_gadman.c index 764acfb7a..afd99dd06 100644 --- a/src/modules/gadman/e_mod_gadman.c +++ b/src/modules/gadman/e_mod_gadman.c @@ -623,7 +623,9 @@ _gadman_gadcon_dnd_enter_cb(E_Gadcon *gc, E_Gadcon_Client *gcc) { /* only use this for dragging gadcons around the desktop */ - if (!eina_list_data_find(Man->gadcons[GADMAN_LAYER_BG], gc)) return; + if ((!eina_list_data_find(Man->gadcons[GADMAN_LAYER_BG], gc)) && + (!eina_list_data_find(Man->gadcons[GADMAN_LAYER_TOP], gc))) + return; //INF("ENTER: %u", e_object_ref_get((void*)gcc)); gadman_gadget_edit_start(gcc); } @@ -635,7 +637,9 @@ _gadman_gadcon_dnd_leave_cb(E_Gadcon *gc, E_Gadcon_Client *gcc) E_Gadcon_Client *drag_gcc = NULL; /* only use this for dragging gadcons around the desktop */ - if (!eina_list_data_find(Man->gadcons[GADMAN_LAYER_BG], gc)) return; + if ((!eina_list_data_find(Man->gadcons[GADMAN_LAYER_BG], gc)) && + (!eina_list_data_find(Man->gadcons[GADMAN_LAYER_TOP], gc))) + return; //INF("LEAVE: %u", e_object_ref_get((void*)gcc)); Man->drag_gcc[gcc->gadcon->id - ID_GADMAN_LAYER_BASE] = NULL; for (layer = 0; layer < GADMAN_LAYER_COUNT; layer++) @@ -665,7 +669,9 @@ _gadman_gadcon_dnd_move_cb(E_Gadcon *gc, E_Gadcon_Client *gcc) int ox, oy, ow, oh; /* only use this for dragging gadcons around the desktop */ - if (!eina_list_data_find(Man->gadcons[GADMAN_LAYER_BG], gc)) return; + if ((!eina_list_data_find(Man->gadcons[GADMAN_LAYER_BG], gc)) && + (!eina_list_data_find(Man->gadcons[GADMAN_LAYER_TOP], gc))) + return; mover = _get_mover(gcc); evas_object_geometry_get(gcc->o_frame, &x, &y, NULL, NULL); @@ -696,7 +702,9 @@ _gadman_gadcon_dnd_drop_cb(E_Gadcon *gc, E_Gadcon_Client *gcc) int gx, gy; /* only use this for dragging gadcons around the desktop */ - if (!eina_list_data_find(Man->gadcons[GADMAN_LAYER_BG], gc)) return; + if ((!eina_list_data_find(Man->gadcons[GADMAN_LAYER_BG], gc)) && + (!eina_list_data_find(Man->gadcons[GADMAN_LAYER_TOP], gc))) + return; gcc->moving = 0; gcc->dx = gcc->dy = 0;