From 95f0b520ac1802c6b18e49e8939198a815c31153 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 20 Feb 2013 10:47:46 +0000 Subject: [PATCH] use separate delay del function for popups to ensure comp win deletion SVN revision: 84262 --- src/bin/e_popup.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/bin/e_popup.c b/src/bin/e_popup.c index fce5aaeee..d7ef5be02 100644 --- a/src/bin/e_popup.c +++ b/src/bin/e_popup.c @@ -117,6 +117,14 @@ _e_popup_autoclose_setup(E_Popup *pop) autoclose_handlers[3] = ecore_event_handler_add(E_EVENT_BORDER_FOCUS_IN, _e_popup_autoclose_focus_cb, pop->key_data); e_grabinput_get(0, 0, e_comp_get(pop)->ee_win); } + +static void +_e_popup_delay_del_cb(E_Popup *pop) +{ + e_popup_hide(pop); + if (pop->cw) e_comp_win_del(pop->cw); +} + /* externally accessible functions */ EINTERN int @@ -139,7 +147,7 @@ e_popup_new(E_Zone *zone, int x, int y, int w, int h) pop = E_OBJECT_ALLOC(E_Popup, E_POPUP_TYPE, _e_popup_free); if (!pop) return NULL; - e_object_delay_del_set(E_OBJECT(pop), e_popup_hide); + e_object_delay_del_set(E_OBJECT(pop), _e_popup_delay_del_cb); pop->zone = zone; pop->ecore_evas = zone->container->bg_ecore_evas; pop->zx = pop->zone->x;