From 399b8de1525d43fad470f8212fedc3d78b14be96 Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Mon, 7 May 2007 18:14:28 +0000 Subject: [PATCH] Keep a hash with winid keys. SVN revision: 29909 --- src/bin/e_shelf.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index cb482fc11..6e9c2415a 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -27,6 +27,7 @@ static void _e_shelf_menu_del_hook(void *data); static void _e_shelf_menu_pre_cb(void *data, E_Menu *m); static Evas_List *shelves = NULL; +static Evas_Hash *winid_shelves = NULL; /* externally accessible functions */ EAPI int @@ -187,7 +188,10 @@ e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, i e_gadcon_zone_set(es->gadcon, zone); e_gadcon_ecore_evas_set(es->gadcon, es->ee); if (popup) - e_gadcon_dnd_window_set(es->gadcon, es->popup->evas_win); + { + e_gadcon_dnd_window_set(es->gadcon, es->popup->evas_win); + winid_shelves = evas_hash_add(winid_shelves, e_util_winid_str_get(es->popup->evas_win), es); + } else e_gadcon_dnd_window_set(es->gadcon, zone->container->event_win); e_gadcon_util_menu_attach_func_set(es->gadcon, @@ -648,6 +652,7 @@ _e_shelf_free(E_Shelf *es) if (es->popup) { e_drop_xdnd_register_set(es->popup->evas_win, 0); + winid_shelves = evas_hash_del(winid_shelves, e_util_winid_str_get(es->popup->evas_win), es); e_object_del(E_OBJECT(es->popup)); } free(es);