We need to emit sigs also to windows that close...etc...etc...

dh

Enlightenment SVN wrote:
> Log:
>   track subobjs (used by entry only for now) and emit signals to them too
>   
>   
> Author:       raster
> Date:         2008-11-16 21:54:01 -0800 (Sun, 16 Nov 2008)
> New Revision: 37688
> 
> Modified:
>   trunk/edje/src/lib/edje_entry.c trunk/edje/src/lib/edje_load.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_entry.c
> ===================================================================
> --- trunk/edje/src/lib/edje_entry.c   2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_entry.c   2008-11-17 05:54:01 UTC (rev 37688)
> @@ -273,6 +273,8 @@
>       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);
> @@ -302,6 +304,8 @@
>       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);
> @@ -323,6 +327,8 @@
>                 evas_object_pass_events_set(ob, 1);
>                 evas_object_show(ob);
>                 sel->obj_bg = ob;
> +                  en->rp->edje->subobjs = 
> eina_list_append(en->rp->edje->subobjs, sel->obj_bg);
> +                  
>                 ob = edje_object_add(en->rp->edje->evas);
>                 edje_object_file_set(ob, en->rp->edje->path, 
> en->rp->part->source2);
>                 evas_object_smart_member_add(ob, smart);
> @@ -331,6 +337,7 @@
>                 evas_object_pass_events_set(ob, 1);
>                 evas_object_show(ob);
>                 sel->obj_fg = ob;
> +                  en->rp->edje->subobjs = 
> eina_list_append(en->rp->edje->subobjs, sel->obj_fg);
>              }
>         }
>       }
> @@ -503,6 +510,8 @@
>            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);
> @@ -523,6 +532,8 @@
>                 evas_object_pass_events_set(ob, 1);
>                 evas_object_show(ob);
>                 sel->obj_bg = ob;
> +                  en->rp->edje->subobjs = 
> eina_list_append(en->rp->edje->subobjs, sel->obj_bg);
> +                  
>                 ob = edje_object_add(en->rp->edje->evas);
>                 edje_object_file_set(ob, en->rp->edje->path, 
> en->rp->part->source6);
>                 evas_object_smart_member_add(ob, smart);
> @@ -531,6 +542,8 @@
>                 evas_object_pass_events_set(ob, 1);
>                 evas_object_show(ob);
>                 sel->obj_fg = ob;
> +                  en->rp->edje->subobjs = 
> eina_list_append(en->rp->edje->subobjs, sel->obj_fg);
> +                  
>                 ob = evas_object_rectangle_add(en->rp->edje->evas);
>                 evas_object_color_set(ob, 0, 0, 0, 0);
>                 evas_object_smart_member_add(ob, smart);
> @@ -590,6 +603,8 @@
>       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);
> @@ -1189,6 +1204,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, 1);
> +   rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_bg);
>     
>     en->cursor_fg = edje_object_add(rp->edje->evas);
>     edje_object_file_set(en->cursor_fg, rp->edje->path, rp->part->source4);
> @@ -1196,12 +1212,13 @@
>     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, 1);
> +   rp->edje->subobjs = eina_list_append(rp->edje->subobjs, en->cursor_fg);
> +   
>     if (rp->part->entry_mode >= EDJE_ENTRY_EDIT_MODE_EDITABLE)
>       {
>       evas_object_show(en->cursor_bg);
>       evas_object_show(en->cursor_fg);
>       }
> -   
>     en->cursor = evas_object_textblock_cursor_get(rp->object);
>  }
>  
> @@ -1213,6 +1230,8 @@
>     rp->entry_data = NULL;
>     _sel_clear(en->cursor, rp->object, en);
>     _anchors_clear(en->cursor, rp->object, en);
> +   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);
>     free(en);
> 
> Modified: trunk/edje/src/lib/edje_load.c
> ===================================================================
> --- trunk/edje/src/lib/edje_load.c    2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_load.c    2008-11-17 05:54:01 UTC (rev 37688)
> @@ -587,6 +587,12 @@
>            ed->load_error = EDJE_LOAD_ERROR_NONE;
>            _edje_emit(ed, "load", NULL);
>         }
> +        // this has to be here to textblock works! otherwise textblock 
> objects
> +        // don't have styles. withotu styles textblock doesnt know how to
> +        // convert markup to format nodes+text - so if u append or modify the
> +        // text by appending format or text nodes, you lose the markup as it
> +        // has no idea what to do. this forces at least a style to be applied
> +        edje_object_calc_force(obj);
>       return 1;
>       }
>     else
> 
> Modified: trunk/edje/src/lib/edje_private.h
> ===================================================================
> --- trunk/edje/src/lib/edje_private.h 2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_private.h 2008-11-17 05:54:01 UTC (rev 37688)
> @@ -629,6 +629,7 @@
>     Edje_Real_Part      **table_parts;
>     Edje_Program        **table_programs;
>     Edje_Real_Part       *focused_part;
> +   Eina_List            *subobjs;
>     void                 *script_only_data;
>     int                   table_programs_size;
>     int                   table_parts_size;
> @@ -1238,5 +1239,5 @@
>  const Eina_List *_edje_entry_anchor_geometry_get(Edje_Real_Part *rp, const 
> char *anchor);
>  const Eina_List *_edje_entry_anchors_list(Edje_Real_Part *rp);
>  void _edje_entry_cursor_geometry_get(Edje_Real_Part *rp, Evas_Coord *cx, 
> Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch);
> -    
> +  
>  #endif
> 
> Modified: trunk/edje/src/lib/edje_program.c
> ===================================================================
> --- trunk/edje/src/lib/edje_program.c 2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_program.c 2008-11-17 05:54:01 UTC (rev 37688)
> @@ -812,11 +812,22 @@
>  _edje_emit(Edje *ed, const char *sig, const char *src)
>  {
>     Edje_Message_Signal emsg;
> -
> +   Eina_List *l;
> +   Evas_Object *obj;
> +   
>     if (ed->delete_me) return;
>     emsg.sig = sig;
>     emsg.src = src;
>     _edje_message_send(ed, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, &emsg);
> +   EINA_LIST_FOREACH(ed->subobjs, l, obj)
> +     {
> +        Edje *ed2;
> +        
> +        ed2 = _edje_fetch(obj);
> +        if (!ed2) continue;
> +        if (ed2->delete_me) continue;
> +        _edje_message_send(ed2, EDJE_QUEUE_SCRIPT, EDJE_MESSAGE_SIGNAL, 0, 
> &emsg);
> +     }
>  }
>  
>  struct _Edje_Program_Data
> 
> Modified: trunk/edje/src/lib/edje_util.c
> ===================================================================
> --- trunk/edje/src/lib/edje_util.c    2008-11-17 04:10:07 UTC (rev 37687)
> +++ trunk/edje/src/lib/edje_util.c    2008-11-17 05:54:01 UTC (rev 37688)
> @@ -919,7 +919,7 @@
>     rp = _edje_real_part_recursive_get(ed, (char *)part);
>     if (!rp) return NULL;
>     if (rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
> -     return _edje_entry_text_get(rp);
> +     return _edje_entry_text_get(rp);
>     else
>       {
>       if (rp->part->type == EDJE_PART_TYPE_TEXT) return rp->text.text;
> 
> 
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> enlightenment-svn mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
> 


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to