From be4f8f86570de0c3db7579f603c79c6f53274b15 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Fri, 21 May 2010 11:28:13 +0000 Subject: [PATCH] defer popup creation. fixes popup being unresposive with composite SVN revision: 49093 --- src/modules/everything/e_mod_main.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/modules/everything/e_mod_main.c b/src/modules/everything/e_mod_main.c index 51faeb7ef..7668ca8a5 100644 --- a/src/modules/everything/e_mod_main.c +++ b/src/modules/everything/e_mod_main.c @@ -420,6 +420,8 @@ _config_free(void) /* action callback */ +static Ecore_Idle_Enterer *idler = NULL; +static const char *_params = NULL; static int _e_mod_run_defer_cb(void *data) @@ -427,7 +429,7 @@ _e_mod_run_defer_cb(void *data) E_Zone *zone; zone = data; - if (zone) evry_show(zone, NULL); + if (zone) evry_show(zone, _params); return 0; } @@ -451,16 +453,12 @@ _e_mod_action_cb(E_Object *obj, const char *params) if (!zone) return; + IF_RELEASE(_params); if (params && params[0]) - evry_show(zone, params); - else - evry_show(zone, NULL); + _params = eina_stringshare_add(params); - /* FIXME popup flickers sometimes when deferes*/ - /* if (params && params[0]) - * evry_show(zone, params); - * else - * ecore_idle_enterer_add(_e_mod_run_defer_cb, zone); */ + if (idler) ecore_idle_enterer_del(idler); + ecore_idle_enterer_add(_e_mod_run_defer_cb, zone); } /* menu item callback(s) */