Hi,
When you send a message from an edje subgroup (part { type: GROUP ...}), the
message callback isn't called because it tries to reach ed->message.func,
which is only defined for the top edje part.
This patches adds the callback and data to all the subgroups recursively.
Regards
Hugo Camboulive
diff --git a/src/lib/edje_message_queue.c b/src/lib/edje_message_queue.c
index f207be3..4a9834d 100644
--- a/src/lib/edje_message_queue.c
+++ b/src/lib/edje_message_queue.c
@@ -199,8 +199,19 @@ _edje_message_shutdown(void)
void
_edje_message_cb_set(Edje *ed, void (*func) (void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg), void *data)
{
+ int i;
+
ed->message.func = func;
ed->message.data = data;
+ for (i = 0 ; i < ed->table_parts_size ; i++) {
+ Edje_Real_Part *rp;
+ rp = ed->table_parts[i];
+ if (rp->part->type == EDJE_PART_TYPE_GROUP && rp->swallowed_object) {
+ Edje *edj2 = _edje_fetch(rp->swallowed_object);
+ if (!edj2) continue;
+ _edje_message_cb_set(edj2, func, data);
+ }
+ }
}
Edje_Message *
------------------------------------------------------------------------------
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel