diff --git a/ChangeLog b/ChangeLog index dcbafe9fff..d8997ebdb7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,7 @@ * Evas textblock: Fixed issue and simplified cursor_geometry_get. * Evas text: Fixed issue with horiz advance. + * Evas text utils: Fixed issue with no-harfbuzz bidi. 2013-01-14 Daniel Willmann diff --git a/NEWS b/NEWS index 5e941372bb..71325bdcee 100644 --- a/NEWS +++ b/NEWS @@ -115,3 +115,4 @@ Fixes: * Fix SIGFPE in evas map update if image is 0. * Evas textblock: Fixed issue and simplified cursor_geometry_get. * Evas text: Fixed issue with horiz advance. + * Evas text utils: Fixed issue with no-harfbuzz bidi. diff --git a/src/lib/evas/common/evas_text_utils.c b/src/lib/evas/common/evas_text_utils.c index 7dc9485378..bad68b20bb 100644 --- a/src/lib/evas/common/evas_text_utils.c +++ b/src/lib/evas/common/evas_text_utils.c @@ -234,8 +234,14 @@ evas_common_text_props_index_find(const Evas_Text_Props *props, int _cutoff) return mid; #else - return _cutoff; - (void) props; + if (props->bidi_dir == EVAS_BIDI_DIRECTION_RTL) + { + return props->len - _cutoff - 1; + } + else + { + return _cutoff; + } #endif } @@ -249,7 +255,6 @@ evas_common_text_props_split(Evas_Text_Props *base, size_t cutoff; /* Translate text cutoff pos to string object cutoff point */ -#ifdef OT_SUPPORT _cutoff = evas_common_text_props_index_find(base, _cutoff); if (_cutoff >= 0) @@ -261,9 +266,6 @@ evas_common_text_props_split(Evas_Text_Props *base, ERR("Couldn't find the cutoff position. Is it inside a cluster?"); return EINA_FALSE; } -#else - cutoff = (size_t) _cutoff; -#endif evas_common_text_props_content_copy_and_ref(ext, base); if (base->bidi_dir == EVAS_BIDI_DIRECTION_RTL)