als search for format items.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 16 Oct 2008 14:18:50 +0000 (14:18 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 16 Oct 2008 14:18:50 +0000 (14:18 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@36720 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/canvas/evas_object_textblock.c

index a5ae99c..7081ce7 100644 (file)
@@ -301,8 +301,14 @@ _strbuf_append(char *strbuf, const char *text, int *strbuf_len, int *strbuf_allo
 {
    int text_len;
 
-   if ((!text) || (text[0] == '\0'))
+   if (!text)
      return strbuf;
+   if ((!strbuf) && (text[0] == '\0'))
+     {
+       *strbuf_len = 0;
+       *strbuf_alloc = 1;
+       return strdup(text);
+     }
 
    text_len = strlen(text);
    return _strbuf_append_int(strbuf, text, text_len, strbuf_len, strbuf_alloc);
@@ -2065,7 +2071,6 @@ _layout(const Evas_Object *obj, int calc_only, int w, int h, int *w_ret, int *h_
    c->align = 0.0;
 
    _format_command_init();
-
    /* setup default base style */
    if ((c->o->style) && (c->o->style->default_tag))
      {
@@ -2259,6 +2264,12 @@ _find_layout_item_line_match(Evas_Object *obj, Evas_Object_Textblock_Node *n, in
    Evas_Object_Textblock *o;
    
    o = (Evas_Object_Textblock *)(obj->object_data);
+   for (l = (Evas_Object_List *)o->nodes; l; l = l->next)
+     {
+       Evas_Object_Textblock_Node *nn;
+       
+       nn = l;
+     }
    for (l = (Evas_Object_List *)o->lines; l; l = l->next)
      {
         Evas_Object_Textblock_Line *ln;
@@ -2279,6 +2290,18 @@ _find_layout_item_line_match(Evas_Object *obj, Evas_Object_Textblock_Node *n, in
                    }
               }
          }
+       for (ll = (Evas_Object_List *)ln->format_items; ll; ll = ll->next)
+         {
+            Evas_Object_Textblock_Format_Item *it;
+
+            it = (Evas_Object_Textblock_Format_Item *)ll;
+            if (it->source_node == n)
+              {
+                 *lnr = ln;
+                 *itr = it;
+                 return;
+              }
+         }
      }
 }