From 90178008fbf28fbbbaff3d4b0f21dc3db761b4da Mon Sep 17 00:00:00 2001 From: tasn Date: Thu, 19 Aug 2010 14:07:45 +0000 Subject: [PATCH] Evas textblock: Fixed range_text_get, no works when selecting text from multiple paragraphs. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@51392 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/canvas/evas_object_textblock.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/lib/canvas/evas_object_textblock.c b/src/lib/canvas/evas_object_textblock.c index 4270a40..5d7cda2 100644 --- a/src/lib/canvas/evas_object_textblock.c +++ b/src/lib/canvas/evas_object_textblock.c @@ -6037,25 +6037,30 @@ evas_textblock_cursor_range_text_get(const Evas_Textblock_Cursor *cur1, const Ev eina_unicode_strdup(eina_ustrbuf_string_get(tnode->unicode)); if (tnode == cur2->node) { - fnode = _evas_textblock_node_text_get_first_format_between(n1, + fnode = _evas_textblock_node_text_get_first_format_between(tnode, cur1->pos, cur2->pos); } - else + else if (tnode == cur1->node) { - fnode = _evas_textblock_node_text_get_first_format_between(n1, + fnode = _evas_textblock_node_text_get_first_format_between(tnode, cur1->pos, -1); } + else + { + fnode = _evas_textblock_node_text_get_first_format_between(tnode, + 0, -1); + } /* Init the offset so the first one will count starting from cur1->pos * and not the previous format node */ if ((tnode == cur1->node) && fnode) { off = _evas_textblock_node_format_pos_get(fnode) - cur1->pos - fnode->offset; + text += cur1->pos; } else { off = 0; } - text += cur1->pos; while (fnode && (fnode->text_node == tnode)) { Eina_Unicode tmp_ch; -- 2.7.4