diff --git a/legacy/edje/src/lib/edje_message_queue.c b/legacy/edje/src/lib/edje_message_queue.c index 07fd75febc..d00d125fec 100644 --- a/legacy/edje/src/lib/edje_message_queue.c +++ b/legacy/edje/src/lib/edje_message_queue.c @@ -28,6 +28,14 @@ edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id, void Edje_Real_Part *rp = ed->table_parts[i]; if ((rp->part->type == EDJE_PART_TYPE_GROUP) && (rp->swallowed_object)) edje_object_message_send(rp->swallowed_object, type, id, msg); + else if (((rp->part->type == EDJE_PART_TYPE_BOX) || + (rp->part->type == EDJE_PART_TYPE_TABLE)) && (rp->items)) + { + Eina_List *itr; + Evas_Object *o; + EINA_LIST_FOREACH(rp->items, itr, o) + edje_object_message_send(o, type, id, msg); + } } } @@ -221,6 +229,19 @@ _edje_message_cb_set(Edje *ed, void (*func) (void *data, Evas_Object *obj, Edje_ if (!edj2) continue; _edje_message_cb_set(edj2, func, data); } + else if (((rp->part->type == EDJE_PART_TYPE_BOX) || + (rp->part->type == EDJE_PART_TYPE_TABLE)) && rp->items) + { + Eina_List *itr; + Evas_Object *obj; + EINA_LIST_FOREACH(rp->items, itr, obj) + { + Edje *edj2; + edj2 = _edje_fetch(obj); + if (!edj2) continue; + _edje_message_cb_set(edj2, func, data); + } + } } }