discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=fccfb20972366a38c40c88617f74ac65e41ae883

commit fccfb20972366a38c40c88617f74ac65e41ae883
Author: Mike Blumenkrantz <[email protected]>
Date:   Wed Jan 22 22:11:03 2014 -0500

    add autoclose callback for syscon to null pointer
    
    previously, repeated uses of syscon would cause a crash
---
 src/modules/syscon/e_syscon.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/modules/syscon/e_syscon.c b/src/modules/syscon/e_syscon.c
index a64cd2a..3cadee1 100644
--- a/src/modules/syscon/e_syscon.c
+++ b/src/modules/syscon/e_syscon.c
@@ -24,6 +24,13 @@ static Ecore_Timer *deftimer = NULL;
 static double show_time = 0.0;
 static int act_count = 0;
 
+static void
+_cb_del(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED)
+{
+   evas_object_hide(popup);
+   E_FREE_FUNC(popup, evas_object_del);
+}
+
 /* externally accessible functions */
 int
 e_syscon_init(void)
@@ -91,7 +98,7 @@ e_syscon_show(E_Zone *zone, const char *defact)
    popup = e_comp_object_util_add(o_bg, E_COMP_OBJECT_TYPE_POPUP);
    evas_object_data_set(popup, "zone", zone);
    evas_object_layer_set(popup, E_LAYER_POPUP);
-   e_comp_object_util_autoclose(popup, NULL, _cb_key_down, NULL);
+   e_comp_object_util_autoclose(popup, _cb_del, _cb_key_down, NULL);
    act_count = 0;
    show_time = t;
 

-- 


Reply via email to