From: raster Date: Fri, 17 Oct 2008 01:39:57 +0000 (+0000) Subject: more work to make it usable X-Git-Tag: accepted/2.0/20130306.225542~242^2~2770 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=78ab64e2ce92ecd3d4f9169c8fd30acdeae9c3de;p=profile%2Fivi%2Fevas.git more work to make it usable git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@36737 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- diff --git a/src/lib/canvas/evas_object_textblock.c b/src/lib/canvas/evas_object_textblock.c index 038a95a..2df61a7 100644 --- a/src/lib/canvas/evas_object_textblock.c +++ b/src/lib/canvas/evas_object_textblock.c @@ -2966,6 +2966,7 @@ evas_object_textblock_text_markup_get(const Evas_Object *obj) if (*s == '-') pop = 1; while ((*s == ' ') || (*s == '+') || (*s == '-')) s++; if (pop) txt = _strbuf_append(txt, "/", &txt_len, &txt_alloc); + if (push) txt = _strbuf_append(txt, "+ ", &txt_len, &txt_alloc); txt = _strbuf_append(txt, s, &txt_len, &txt_alloc); } txt = _strbuf_append(txt, ">", &txt_len, &txt_alloc); @@ -3907,33 +3908,38 @@ evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_C if (chr == 0) return; if (n1 == n2) { - if (cur1->pos == cur2->pos) + if (n1->type == NODE_TEXT) { - evas_textblock_cursor_char_delete(cur1); - evas_textblock_cursor_copy(cur1, cur2); - return; - } - n1->text = _strbuf_remove(n1->text, cur1->pos, index, &(n1->len), &(n1->alloc)); - if (!n1->text) - { - evas_textblock_cursor_node_delete(cur1); - evas_textblock_cursor_copy(cur1, cur2); - return; - } - if (cur1->pos >= n1->len) - { - n2 = (Evas_Object_Textblock_Node *)(((Evas_Object_List *)n1)->next); - if (n2) + if (cur1->pos == cur2->pos) { - cur1->node = n2; - cur1->pos = 0; + evas_textblock_cursor_char_delete(cur1); + evas_textblock_cursor_copy(cur1, cur2); + return; } - else + n1->text = _strbuf_remove(n1->text, cur1->pos, index, &(n1->len), &(n1->alloc)); + if (!n1->text) { - cur1->pos = 0; - evas_textblock_cursor_char_last(cur1); + evas_textblock_cursor_node_delete(cur1); + evas_textblock_cursor_copy(cur1, cur2); + return; + } + if (cur1->pos >= n1->len) + { + n2 = (Evas_Object_Textblock_Node *)(((Evas_Object_List *)n1)->next); + if (n2) + { + cur1->node = n2; + cur1->pos = 0; + } + else + { + cur1->pos = 0; + evas_textblock_cursor_char_last(cur1); + } } } + else + evas_textblock_cursor_node_delete(cur1); evas_textblock_cursor_copy(cur1, cur2); } else @@ -4392,6 +4398,7 @@ evas_textblock_cursor_range_text_get(const Evas_Textblock_Cursor *cur1, const Ev if (*s == '-') pop = 1; while ((*s == ' ') || (*s == '+') || (*s == '-')) s++; if (pop) str = _strbuf_append(str, "/", &len, &alloc); + if (push) str = _strbuf_append(str, "+ ", &len, &alloc); str = _strbuf_append(str, s, &len, &alloc); } str = _strbuf_append(str, ">", &len, &alloc);