forked from enlightenment/efl
Evas textblock: Fixed a selection issue.
The issue happens when selecting in strings that have both bidi and different scripts in the same bidi run. E.g: "עבריתenglishрусскийעברית". SVN revision: 83786
This commit is contained in:
parent
dbaf2b8fde
commit
548e548632
|
@ -1,3 +1,8 @@
|
||||||
|
2013-02-08 Tom Hacohen (TAsn)
|
||||||
|
|
||||||
|
* Evas textblock: Fixed a selection issue with different scripts and
|
||||||
|
bidi.
|
||||||
|
|
||||||
2013-02-08 Guillaume Friloux
|
2013-02-08 Guillaume Friloux
|
||||||
* Fix usage of Ecore_Con_Server's internal buffer.
|
* Fix usage of Ecore_Con_Server's internal buffer.
|
||||||
|
|
||||||
|
@ -38,7 +43,6 @@
|
||||||
* ecore_wayland: Add ecore_wl_globals_get
|
* ecore_wayland: Add ecore_wl_globals_get
|
||||||
|
|
||||||
2013-02-04 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
2013-02-04 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
|
||||||
|
|
||||||
* evas: Stop initializing and shutting Fontconfig down
|
* evas: Stop initializing and shutting Fontconfig down
|
||||||
|
|
||||||
2013-02-04 Cedric Bail
|
2013-02-04 Cedric Bail
|
||||||
|
|
1
NEWS
1
NEWS
|
@ -158,3 +158,4 @@ Fixes:
|
||||||
* Fix memleak in Eina_File.
|
* Fix memleak in Eina_File.
|
||||||
* Fix ecore_x_screen_is_composited/set() to work on multihead.
|
* Fix ecore_x_screen_is_composited/set() to work on multihead.
|
||||||
* Fix memory usage of Ecore_Con_Server
|
* Fix memory usage of Ecore_Con_Server
|
||||||
|
* Evas textblock: Fixed a selection issue with different scripts and bidi.
|
||||||
|
|
|
@ -9573,8 +9573,11 @@ _evas_textblock_cursor_range_in_line_geometry_get(
|
||||||
}
|
}
|
||||||
|
|
||||||
while (it && (it != it2))
|
while (it && (it != it2))
|
||||||
|
{
|
||||||
|
if ((start <= it->text_pos) && (it->text_pos <= end))
|
||||||
{
|
{
|
||||||
max_x = it->x + it->adv;
|
max_x = it->x + it->adv;
|
||||||
|
}
|
||||||
it = (Evas_Object_Textblock_Item *) EINA_INLIST_GET(it)->next;
|
it = (Evas_Object_Textblock_Item *) EINA_INLIST_GET(it)->next;
|
||||||
}
|
}
|
||||||
if (min_x != max_x)
|
if (min_x != max_x)
|
||||||
|
|
|
@ -1381,6 +1381,11 @@ START_TEST(evas_textblock_geometries)
|
||||||
fail_if((tr->x != tr2->x) || (tr->y != tr2->y) || (tr->w != tr2->w) ||
|
fail_if((tr->x != tr2->x) || (tr->y != tr2->y) || (tr->w != tr2->w) ||
|
||||||
(tr->h != tr2->h));
|
(tr->h != tr2->h));
|
||||||
|
|
||||||
|
EINA_LIST_FREE(rects, tr)
|
||||||
|
free(tr);
|
||||||
|
EINA_LIST_FREE(rects2, tr2)
|
||||||
|
free(tr2);
|
||||||
|
|
||||||
/* Multiline range */
|
/* Multiline range */
|
||||||
evas_textblock_cursor_pos_set(cur, 0);
|
evas_textblock_cursor_pos_set(cur, 0);
|
||||||
evas_textblock_cursor_pos_set(main_cur, 14);
|
evas_textblock_cursor_pos_set(main_cur, 14);
|
||||||
|
@ -1414,6 +1419,23 @@ START_TEST(evas_textblock_geometries)
|
||||||
tr2 = eina_list_data_get(eina_list_next(rects));
|
tr2 = eina_list_data_get(eina_list_next(rects));
|
||||||
fail_if(tr->y >= tr2->y);
|
fail_if(tr->y >= tr2->y);
|
||||||
|
|
||||||
|
EINA_LIST_FREE(rects, tr)
|
||||||
|
free(tr);
|
||||||
|
EINA_LIST_FREE(rects2, tr2)
|
||||||
|
free(tr2);
|
||||||
|
|
||||||
|
/* Same run different scripts */
|
||||||
|
evas_object_textblock_text_markup_set(tb, "עבריתenglishрусскийעברית");
|
||||||
|
|
||||||
|
evas_textblock_cursor_pos_set(cur, 3);
|
||||||
|
evas_textblock_cursor_pos_set(main_cur, 7);
|
||||||
|
rects = evas_textblock_cursor_range_geometry_get(cur, main_cur);
|
||||||
|
|
||||||
|
fail_if(eina_list_count(rects) != 2);
|
||||||
|
|
||||||
|
EINA_LIST_FREE(rects, tr)
|
||||||
|
free(tr);
|
||||||
|
|
||||||
END_TB_TEST();
|
END_TB_TEST();
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
Loading…
Reference in New Issue