Evas textblock: Fixed a bug with deleting range when the first char is a visible format.

SVN revision: 53067
This commit is contained in:
Tom Hacohen 2010-10-05 16:17:01 +00:00
parent f352ce15bc
commit 0896d2b013
1 changed files with 4 additions and 2 deletions

View File

@ -5121,12 +5121,13 @@ _evas_textblock_node_text_adjust_offsets_to_start(Evas_Object_Textblock *o,
if (!first)
{
last_node->offset = 0;
last_node->visible = EINA_FALSE;
}
else
{
first = 0;
}
last_node->visible = EINA_FALSE;
if (!itr || (itr && (itr->text_node != n)))
{
/* Remove the PS, and return since it's the end of the node */
@ -5171,6 +5172,7 @@ _evas_textblock_node_text_remove_formats_between(Evas_Object_Textblock *o,
if (itr)
start -= itr->offset;
if (offset < 0) offset = 0;
if (end < 0) use_end = 0;
while (itr && (itr->text_node == n))
{
Evas_Object_Textblock_Node_Format *nnode;
@ -6079,7 +6081,6 @@ evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_C
if (n1 == n2)
{
eina_ustrbuf_remove(n1->unicode, cur1->pos, cur2->pos);
if ((cur1->pos == 0) &&
(cur2->pos == eina_ustrbuf_length_get(n1->unicode)))
{
@ -6090,6 +6091,7 @@ evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_C
should_merge = _evas_textblock_node_text_adjust_offsets_to_start(o,
n1, cur1->pos, cur2->pos);
}
eina_ustrbuf_remove(n1->unicode, cur1->pos, cur2->pos);
_evas_textblock_cursors_update_offset(cur1, cur1->node, cur1->pos, - (cur2->pos - cur1->pos));
}
else