From c1cd24a5616740b8c9f21d76a37728968e78fcfd Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 22 Feb 2018 12:36:47 -0500 Subject: [PATCH] process comp object hide/show signals immediately during intercept for objects without animations, it's important to instantly perform state transitions in order to preserve intended visibility behaviors of these objects and avoid race conditions due to asynchronous signal processing fix T6722 --- src/bin/e_comp_object.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index c1a7941c7..eecb88817 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -2816,6 +2816,7 @@ _e_comp_object_util_show(void *data EINA_UNUSED, Evas_Object *obj) evas_object_data_set(obj, "comp_ref", (void*)1); } edje_object_signal_emit(obj, "e,state,visible", "e"); + edje_object_message_signal_process(obj); evas_object_data_set(obj, "comp_showing", (void*)1); if (e_comp_util_object_is_above_nocomp(obj)) { @@ -2844,6 +2845,7 @@ _e_comp_object_util_hide(void *data EINA_UNUSED, Evas_Object *obj) evas_object_data_set(obj, "comp_ref", (void*)1); } edje_object_signal_emit(obj, "e,state,hidden", "e"); + edje_object_message_signal_process(obj); evas_object_data_set(obj, "comp_hiding", (void*)1); if (evas_object_data_del(obj, "comp_override"))