aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2013-02-20 10:47:46 +0000
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>2013-02-20 10:47:46 +0000
commit95f0b520ac1802c6b18e49e8939198a815c31153 (patch)
tree08c9863b1011a71efeb88df33987355c29aded96
parent88f00310d70a56af39250acc878b8b38c26f0f94 (diff)
downloadenlightenment-95f0b520ac1802c6b18e49e8939198a815c31153.tar.gz
enlightenment-95f0b520ac1802c6b18e49e8939198a815c31153.tar.xz
enlightenment-95f0b520ac1802c6b18e49e8939198a815c31153.zip
use separate delay del function for popups to ensure comp win deletion
SVN revision: 84262
-rw-r--r--src/bin/e_popup.c10
1 files changed, 9 insertions, 1 deletions
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;