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; --
