From 2966d44f67cfbe3699f2dd899aeebe2c4ba9ce5c Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Sat, 19 Nov 2011 03:24:37 +0000 Subject: [PATCH] fix looping message passing from children back to parent then back to child, parent etc. due to changes in propagation code. SVN revision: 65398 --- legacy/edje/src/lib/edje_load.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/legacy/edje/src/lib/edje_load.c b/legacy/edje/src/lib/edje_load.c index a82f73a46d..68bfb95217 100644 --- a/legacy/edje/src/lib/edje_load.c +++ b/legacy/edje/src/lib/edje_load.c @@ -730,7 +730,8 @@ _edje_object_file_set_internal(Evas_Object *obj, const char *file, const char *g group_path = eina_list_remove(group_path, group_path_entry); eina_stringshare_del(group_path_entry); - edje_object_signal_callback_add(child_obj, "*", "*", _cb_signal_repeat, obj); + edje_object_signal_callback_add(child_obj, "*", "*", + _cb_signal_repeat, obj); if (rp->part->type == EDJE_PART_TYPE_GROUP) { _edje_real_part_swallow(rp, child_obj, EINA_TRUE); @@ -1418,6 +1419,7 @@ _cb_signal_repeat(void *data, Evas_Object *obj, const char *sig, const char *sou size_t length_source; int i = 0; const char *alias = NULL; + Edje_Message_Signal emsg; parent = data; ed = _edje_fetch(obj); @@ -1512,6 +1514,10 @@ _cb_signal_repeat(void *data, Evas_Object *obj, const char *sig, const char *sou } } } - - edje_object_signal_emit(parent, sig, alias ? alias : new_src); + + emsg.sig = sig; + emsg.src = alias ? alias : new_src; + emsg.data = NULL; + _edje_message_send(ed_parent, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, + 0, &emsg); }