use e_gadcon_zone_get for dnd-related functions to ensure we get the right zone: fixes toolbar dnd

This commit is contained in:
Mike Blumenkrantz 2013-02-20 10:54:34 +00:00
parent 4b9113f3ba
commit 56fdcf1faa
1 changed files with 6 additions and 4 deletions

View File

@ -2254,10 +2254,12 @@ _e_gadcon_client_drag_begin(E_Gadcon_Client *gcc, int x, int y)
E_Drag *drag;
Evas_Object *o = NULL;
Evas_Coord w = 0, h = 0;
E_Zone *zone;
const char *drag_types[] = { "enlightenment/gadcon_client" };
if ((gcc->gadcon->drag_gcc) || (!gcc->gadcon->zone) || (!gcc->gadcon->zone->container))
return;
zone = e_gadcon_zone_get(gcc->gadcon);
if (gcc->gadcon->drag_gcc) return;
if ((!zone) || (!zone->container)) return;
if (!e_util_strcmp(gcc->client_class->name, "systray"))
return;
@ -2274,9 +2276,9 @@ _e_gadcon_client_drag_begin(E_Gadcon_Client *gcc, int x, int y)
if (!e_drop_inside(gcc->gadcon->drop_handler, x, y))
e_gadcon_client_hide(gcc);
ecore_x_pointer_xy_get(gcc->gadcon->zone->container->win, &x, &y);
ecore_x_pointer_xy_get(zone->container->win, &x, &y);
gcc->drag.drag = drag = e_drag_new(gcc->gadcon->zone->container, x, y,
gcc->drag.drag = drag = e_drag_new(zone->container, x, y,
drag_types, 1, gcc, -1, NULL,
e_gadcon_drag_finished_cb);
if (!drag) return;