On Fri, 18 Nov 2011 11:38:57 +0100 (CET) Vincent Torri <[email protected]>
said:

> 
> 
> On Fri, 18 Nov 2011, Enlightenment SVN wrote:
> 
> > Log:
> > fix inconsistency with propagating signals and messages. now messages
> >  AND signals should propagate to children the SAME WAY - that means
> >  children you added explicitly in the edje file and not form c code get
> >  propagated to.
> 
> does ChangeLog/NEWS need an entry ?

waiting for onefang to try.:) i may have to revert and try again.

> > Author:       raster
> > Date:         2011-11-18 02:35:38 -0800 (Fri, 18 Nov 2011)
> > New Revision: 65384
> > Trac:         http://trac.enlightenment.org/e/changeset/65384
> >
> > Modified:
> >  trunk/edje/src/lib/edje_embryo.c trunk/edje/src/lib/edje_entry.c
> > trunk/edje/src/lib/edje_load.c trunk/edje/src/lib/edje_lua2.c
> > trunk/edje/src/lib/edje_message_queue.c trunk/edje/src/lib/edje_private.h
> > trunk/edje/src/lib/edje_program.c trunk/edje/src/lib/edje_util.c
> >
> > Modified: trunk/edje/src/lib/edje_embryo.c
> > ===================================================================
> > --- trunk/edje/src/lib/edje_embryo.c        2011-11-18 09:52:58 UTC (rev
> > 65383) +++ trunk/edje/src/lib/edje_embryo.c 2011-11-18 10:35:38 UTC
> > (rev 65384) @@ -2609,6 +2609,7 @@
> >         return 0;
> >      }
> >    edje_object_part_swallow(ed->obj, rp->part->name, new_obj);
> > +   _edje_subobj_register(ed, new_obj);
> >
> >    return 0;
> > }
> >
> > Modified: trunk/edje/src/lib/edje_entry.c
> > ===================================================================
> > --- trunk/edje/src/lib/edje_entry.c 2011-11-18 09:52:58 UTC (rev
> > 65383) +++ trunk/edje/src/lib/edje_entry.c  2011-11-18 10:35:38 UTC
> > (rev 65384) @@ -464,8 +464,6 @@
> >         Sel *sel;
> >
> >         sel = en->sel->data;
> > -        en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs,
> > sel->obj_bg);
> > -        en->rp->edje->subobjs = eina_list_remove(en->rp->edje->subobjs,
> > sel->obj_fg); if (sel->obj_bg) evas_object_del(sel->obj_bg);
> >         if (sel->obj_fg) evas_object_del(sel->obj_fg);
> >         free(sel);
> > @@ -497,8 +495,6 @@
> >         while (en->sel)
> >           {
> >              sel = en->sel->data;
> > -             en->rp->edje->subobjs = eina_list_remove
> > (en->rp->edje->subobjs, sel->obj_bg);
> > -             en->rp->edje->subobjs = eina_list_remove
> > (en->rp->edje->subobjs, sel->obj_fg); if (sel->obj_bg) evas_object_del
> > (sel->obj_bg); if (sel->obj_fg) evas_object_del(sel->obj_fg);
> >              free(sel);
> > @@ -520,7 +516,7 @@
> >                   evas_object_pass_events_set(ob, EINA_TRUE);
> >                   evas_object_show(ob);
> >                   sel->obj_bg = ob;
> > -                  en->rp->edje->subobjs = eina_list_append
> > (en->rp->edje->subobjs, sel->obj_bg);
> > +                  _edje_subobj_register(en->rp->edje, sel->obj_bg);
> >
> >                   ob = edje_object_add(en->rp->edje->base.evas);
> >                   edje_object_file_set(ob, en->rp->edje->path,
> > en->rp->part->source2); @@ -530,7 +526,7 @@
> >                   evas_object_pass_events_set(ob, EINA_TRUE);
> >                   evas_object_show(ob);
> >                   sel->obj_fg = ob;
> > -                  en->rp->edje->subobjs = eina_list_append
> > (en->rp->edje->subobjs, sel->obj_fg);
> > +                  _edje_subobj_register(en->rp->edje, sel->obj_fg);
> >                }
> >           }
> >      }
> > @@ -728,10 +724,6 @@
> >                   while (an->sel)
> >                     {
> >                        sel = an->sel->data;
> > -                       en->rp->edje->subobjs =
> > -                         eina_list_remove(en->rp->edje->subobjs,
> > sel->obj_bg);
> > -                       en->rp->edje->subobjs =
> > -                         eina_list_remove(en->rp->edje->subobjs,
> > sel->obj_fg); if (sel->obj_bg) evas_object_del(sel->obj_bg);
> >                        if (sel->obj_fg) evas_object_del(sel->obj_fg);
> >                        if (sel->obj) evas_object_del(sel->obj);
> > @@ -766,8 +758,6 @@
> >                   while (an->sel)
> >                     {
> >                        sel = an->sel->data;
> > -                       en->rp->edje->subobjs = eina_list_remove
> > (en->rp->edje->subobjs, sel->obj_bg);
> > -                       en->rp->edje->subobjs = eina_list_remove
> > (en->rp->edje->subobjs, sel->obj_fg); if (sel->obj_bg) evas_object_del
> > (sel->obj_bg); if (sel->obj_fg) evas_object_del(sel->obj_fg);
> >                        if (sel->obj) evas_object_del(sel->obj);
> > @@ -788,7 +778,7 @@
> >                        evas_object_pass_events_set(ob, EINA_TRUE);
> >                        evas_object_show(ob);
> >                        sel->obj_bg = ob;
> > -                       en->rp->edje->subobjs = eina_list_append
> > (en->rp->edje->subobjs, sel->obj_bg);
> > +                       _edje_subobj_register(en->rp->edje, sel->obj_bg);
> >
> >                        ob = edje_object_add(en->rp->edje->base.evas);
> >                        edje_object_file_set(ob, en->rp->edje->path,
> > en->rp->part->source6); @@ -798,7 +788,7 @@
> >                        evas_object_pass_events_set(ob, EINA_TRUE);
> >                        evas_object_show(ob);
> >                        sel->obj_fg = ob;
> > -                       en->rp->edje->subobjs = eina_list_append
> > (en->rp->edje->subobjs, sel->obj_fg);
> > +                       _edje_subobj_register(en->rp->edje, sel->obj_fg);
> >
> >                        ob = evas_object_rectangle_add
> > (en->rp->edje->base.evas); evas_object_color_set(ob, 0, 0, 0, 0);
> > @@ -878,8 +868,6 @@
> >         while (an->sel)
> >           {
> >              Sel *sel = an->sel->data;
> > -             en->rp->edje->subobjs = eina_list_remove
> > (en->rp->edje->subobjs, sel->obj_bg);
> > -             en->rp->edje->subobjs = eina_list_remove
> > (en->rp->edje->subobjs, sel->obj_fg); if (sel->obj_bg) evas_object_del
> > (sel->obj_bg); if (sel->obj_fg) evas_object_del(sel->obj_fg);
> >              if (sel->obj) evas_object_del(sel->obj);
> > @@ -2012,7 +2000,7 @@
> >    evas_object_stack_below(en->cursor_bg, rp->object);
> >    evas_object_clip_set(en->cursor_bg, evas_object_clip_get(rp->object));
> >    evas_object_pass_events_set(en->cursor_bg, EINA_TRUE);
> > -   rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_bg);
> > +   _edje_subobj_register(en->rp->edje, en->cursor_bg);
> >
> >    en->cursor_fg = edje_object_add(rp->edje->base.evas);
> >    edje_object_file_set(en->cursor_fg, rp->edje->path, rp->part->source4);
> > @@ -2020,7 +2008,7 @@
> >    evas_object_stack_above(en->cursor_fg, rp->object);
> >    evas_object_clip_set(en->cursor_fg, evas_object_clip_get(rp->object));
> >    evas_object_pass_events_set(en->cursor_fg, EINA_TRUE);
> > -   rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_fg);
> > +   _edje_subobj_register(en->rp->edje, en->cursor_fg);
> >
> >    if (rp->part->entry_mode >= EDJE_ENTRY_EDIT_MODE_EDITABLE)
> >      {
> > @@ -2086,8 +2074,6 @@
> > #ifdef HAVE_ECORE_IMF
> >    _preedit_clear(en);
> > #endif
> > -   rp->edje->subobjs = eina_list_remove(rp->edje->subobjs, en->cursor_bg);
> > -   rp->edje->subobjs = eina_list_remove(rp->edje->subobjs, en->cursor_fg);
> >    evas_object_del(en->cursor_bg);
> >    evas_object_del(en->cursor_fg);
> >
> >
> > Modified: trunk/edje/src/lib/edje_load.c
> > ===================================================================
> > --- trunk/edje/src/lib/edje_load.c  2011-11-18 09:52:58 UTC (rev
> > 65383) +++ trunk/edje/src/lib/edje_load.c   2011-11-18 10:35:38 UTC
> > (rev 65384) @@ -771,6 +771,8 @@
> >                              pack_it = NULL;
> >                           }
> >                      }
> > +                       if (source)
> > +                         _edje_subobj_register(ed, child_obj);
> >                 }
> >            }
> >
> >
> > Modified: trunk/edje/src/lib/edje_lua2.c
> > ===================================================================
> > --- trunk/edje/src/lib/edje_lua2.c  2011-11-18 09:52:58 UTC (rev
> > 65383) +++ trunk/edje/src/lib/edje_lua2.c   2011-11-18 10:35:38 UTC
> > (rev 65384) @@ -1410,6 +1410,7 @@
> > {
> >    _ELUA_PLANT_EVAS_OBJECT(Edje_Lua_Evas_Object, _elua_evas_edje_meta,
> > _elua_evas_obj_free) elo->evas_obj = edje_object_add(evas_object_evas_get
> > (ed->obj));
> > +   _edje_subobj_register(ed, elo->evas_obj);
> >    _elua_polish_evas_object(ed, elo);
> >    return 1;
> > }
> >
> > Modified: trunk/edje/src/lib/edje_message_queue.c
> > ===================================================================
> > --- trunk/edje/src/lib/edje_message_queue.c 2011-11-18 09:52:58 UTC
> > (rev 65383) +++ trunk/edje/src/lib/edje_message_queue.c     2011-11-18
> > 10:35:38 UTC (rev 65384) @@ -17,12 +17,19 @@
> > edje_object_message_send(Evas_Object *obj, Edje_Message_Type type, int id,
> > void *msg) {
> >    Edje *ed;
> > -   unsigned int i;
> > +   Eina_List *l;
> > +   Evas_Object *o;
> >
> >    ed = _edje_fetch(obj);
> >    if (!ed) return;
> > -
> >    _edje_message_send(ed, EDJE_QUEUE_SCRIPT, type, id, msg);
> > +   EINA_LIST_FOREACH(ed->subobjs, l, o)
> > +     {
> > +        edje_object_message_send(o, type, id, msg);
> > +     }
> > +/* old manual part walking code to send messages to children - should all
> > + * be in subobjs if we care
> > +   unsigned int i;
> >
> >    for (i = 0; i < ed->table_parts_size; i++)
> >      {
> > @@ -47,6 +54,7 @@
> >                }
> >           }
> >      }
> > + */
> > }
> >
> >
> > @@ -208,10 +216,21 @@
> > void
> > _edje_message_cb_set(Edje *ed, void (*func) (void *data, Evas_Object *obj,
> > Edje_Message_Type type, int id, void *msg), void *data) {
> > -   unsigned int i;
> > +   Eina_List *l;
> > +   Evas_Object *o;
> >
> >    ed->message.func = func;
> >    ed->message.data = data;
> > +   EINA_LIST_FOREACH(ed->subobjs, l, o)
> > +     {
> > +        Edje *edj2 = _edje_fetch(o);
> > +        if (!edj2) continue;
> > +        _edje_message_cb_set(edj2, func, data);
> > +     }
> > +/* old manual part walking code to send messages to children - should all
> > + * be in subobjs if we care
> > +   unsigned int i;
> > +
> >    for (i = 0; i < ed->table_parts_size; i++)
> >      {
> >         Edje_Real_Part *rp = ed->table_parts[i];
> > @@ -234,6 +253,7 @@
> >                }
> >           }
> >      }
> > + */
> > }
> >
> > Edje_Message *
> >
> > Modified: trunk/edje/src/lib/edje_private.h
> > ===================================================================
> > --- trunk/edje/src/lib/edje_private.h       2011-11-18 09:52:58 UTC (rev
> > 65383) +++ trunk/edje/src/lib/edje_private.h        2011-11-18 10:35:38 UTC
> > (rev 65384) @@ -1964,6 +1964,8 @@
> > void _edje_lib_ref(void);
> > void _edje_lib_unref(void);
> >
> > +void _edje_subobj_register(Edje *ed, Evas_Object *ob);
> > +
> > void _edje_multisense_init(void);
> > void _edje_multisense_shutdown(void);
> > Eina_Bool _edje_multisense_internal_sound_sample_play(Edje *ed, const char
> > *sample_name, const double speed);
> >
> > Modified: trunk/edje/src/lib/edje_program.c
> > ===================================================================
> > --- trunk/edje/src/lib/edje_program.c       2011-11-18 09:52:58 UTC (rev
> > 65383) +++ trunk/edje/src/lib/edje_program.c        2011-11-18 10:35:38 UTC
> > (rev 65384) @@ -846,12 +846,9 @@
> >
> > /* data should either be NULL or a malloc allocated data */
> > void
> > -_edje_emit_full(Edje *ed, const char *sig, const char *src, void *data,
> > -      void (*free_func)(void *))
> > +_edje_emit_full(Edje *ed, const char *sig, const char *src, void *data,
> > void (*free_func)(void *)) {
> >    Edje_Message_Signal emsg;
> > -   Eina_List *l;
> > -   Evas_Object *obj;
> >    const char *sep;
> >
> >    if (ed->delete_me) return;
> > @@ -991,6 +988,9 @@
> >      {
> >         emsg.data = NULL;
> >      }
> > +/* new sends code */
> > +   edje_object_message_send(ed->obj, EDJE_MESSAGE_SIGNAL, 0, &emsg);
> > +/* old send code - use api now
> >    _edje_message_send(ed, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg);
> >    EINA_LIST_FOREACH(ed->subobjs, l, obj)
> >      {
> > @@ -1001,7 +1001,7 @@
> >         if (ed2->delete_me) continue;
> >         _edje_message_send(ed2, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0,
> > &emsg); }
> > -
> > + */
> >    if (emsg.data && (--(emsg.data->ref) == 0))
> >      {
> >         if (emsg.data->free_func)
> >
> > Modified: trunk/edje/src/lib/edje_util.c
> > ===================================================================
> > --- trunk/edje/src/lib/edje_util.c  2011-11-18 09:52:58 UTC (rev
> > 65383) +++ trunk/edje/src/lib/edje_util.c   2011-11-18 10:35:38 UTC
> > (rev 65384) @@ -4297,5 +4297,21 @@
> >    return es->str;
> > }
> >
> > +static void
> > +_cb_subobj_del(void *data, __UNUSED__ Evas *e, Evas_Object *obj,
> > __UNUSED__ void *event_info) +{
> > +   Edje *ed = data;
> > +   ed->subobjs = eina_list_remove(ed->subobjs, obj);
> > +   evas_object_event_callback_del_full(obj, EVAS_CALLBACK_DEL,
> > +                                       _cb_subobj_del, ed);
> > +}
> >
> > +void
> > +_edje_subobj_register(Edje *ed, Evas_Object *ob)
> > +{
> > +   ed->subobjs = eina_list_append(ed->subobjs, ob);
> > +   evas_object_event_callback_add(ob, EVAS_CALLBACK_DEL,
> > +                                  _cb_subobj_del, ed);
> > +}
> > +
> > /* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/
> >
> >
> > ------------------------------------------------------------------------------
> > All the data continuously generated in your IT infrastructure
> > contains a definitive record of customers, application performance,
> > security threats, fraudulent activity, and more. Splunk takes this
> > data and makes sense of it. IT sense. And common sense.
> > http://p.sf.net/sfu/splunk-novd2d
> > _______________________________________________
> > enlightenment-svn mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
> >
> >
> 
> ------------------------------------------------------------------------------
> All the data continuously generated in your IT infrastructure 
> contains a definitive record of customers, application performance, 
> security threats, fraudulent activity, and more. Splunk takes this 
> data and makes sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-novd2d
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    [email protected]


------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to