From ad8b4e6d4d84edbc9b2cca3e803874101dbe01dc Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 3 Feb 2014 11:58:02 -0500 Subject: [PATCH] track main loop edje freeze state --- src/bin/e_main.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 14101ed7c..e601f5c6a 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -87,6 +87,7 @@ static Eina_Bool _e_main_cb_idle_after(void *data __UNUSED__); static Eina_Bool _e_main_cb_startup_fake_end(void *data __UNUSED__); /* local variables */ +static Eina_Bool frozen = EINA_FALSE; static int idle_freeze = 0; static Eina_Bool really_know = EINA_FALSE; static Eina_Bool locked = EINA_FALSE; @@ -1671,6 +1672,7 @@ _e_main_cb_idle_before(void *data __UNUSED__) e_client_idler_before(); e_pointer_idler_before(); edje_thaw(); + frozen = EINA_FALSE; return ECORE_CALLBACK_RENEW; } @@ -1680,6 +1682,7 @@ _e_main_cb_idle_after(void *data __UNUSED__) static int first_idle = 1; edje_freeze(); + frozen = EINA_TRUE; #ifdef E19_RELEASE_BUILD if (first_idle) @@ -1721,7 +1724,9 @@ e_main_idler_freeze(void) if (idle_freeze++) return; E_FREE_FUNC(_idle_before, ecore_idle_enterer_del); E_FREE_FUNC(_idle_after, ecore_idle_enterer_del); + if (!frozen) return; edje_thaw(); + frozen = EINA_FALSE; } EINTERN void