From: tasn Date: Thu, 28 Apr 2011 08:18:44 +0000 (+0000) Subject: Evas textblock: Fixed *_format_remove_pair to invalidate the text nodes. X-Git-Tag: 2.0_alpha~240^2~719 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1d9ce64579f9faf99215bf8c41c8983029099545;p=framework%2Fuifw%2Fevas.git Evas textblock: Fixed *_format_remove_pair to invalidate the text nodes. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@58991 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/canvas/evas_object_textblock.c b/src/lib/canvas/evas_object_textblock.c index 229b5fc..63383fd 100644 --- a/src/lib/canvas/evas_object_textblock.c +++ b/src/lib/canvas/evas_object_textblock.c @@ -5136,7 +5136,7 @@ EAPI void evas_textblock_node_format_remove_pair(Evas_Object *obj, Evas_Object_Textblock_Node_Format *n) { - Evas_Object_Textblock_Node_Text *tnode; + Evas_Object_Textblock_Node_Text *tnode1; Evas_Object_Textblock_Node_Format *fmt, *pnode; int level; TB_HEAD(); @@ -5145,7 +5145,6 @@ evas_textblock_node_format_remove_pair(Evas_Object *obj, pnode = NULL; fmt = n; - tnode = fmt->text_node; level = 0; do @@ -5181,12 +5180,29 @@ evas_textblock_node_format_remove_pair(Evas_Object *obj, } _evas_textblock_cursors_update_offset(&cur, n->text_node, index, -1); } + tnode1 = n->text_node; _evas_textblock_node_format_remove(o, n, 0); if (pnode && (pnode != n)) { + Evas_Object_Textblock_Node_Text *tnode2; + tnode2 = pnode->text_node; /* pnode can never be visible! (it's the closing format) */ _evas_textblock_node_format_remove(o, pnode, 0); + + /* FIXME: Should be unified in the layout, for example, added to a list + * that checks this kind of removals. But until then, this is very fast + * and works. */ + /* Mark all the text nodes in between the removed formats as dirty. */ + while (tnode1) + { + tnode1->dirty = EINA_TRUE; + if (tnode1 == tnode2) + break; + tnode1 = + _NODE_TEXT(EINA_INLIST_GET(tnode1)->next); + } } + _evas_textblock_changed(o, obj); }