Summary:
BiDi text is truncated because the way we find the last visual item in text object is wrong.
This patch is similar with _line_native_last_visual_get function in textblock.
Reviewers: cedric, tasn, herdsman
Subscribers: id213sin, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3947
#ifdef BIDI_SUPPORT
int par_len = len;
int *segment_idxs = NULL;
+ Eina_Bool is_bidi = EINA_FALSE;
#endif
if (o->items &&
}
o->bidi_par_props = evas_bidi_paragraph_props_get(text, len, segment_idxs, bidi_par_type);
+ is_bidi = !!o->bidi_par_props;
}
if (o->bidi_par_props)
if (text)
{
const Evas_Object_Text_Item *last_it = NULL;
+#ifdef BIDI_SUPPORT
+ size_t max_vpos = 0;
+#endif
while (len > 0)
{
len -= run_len;
if (it->w > 0)
- last_it = it;
+ {
+#ifdef BIDI_SUPPORT
+ if (is_bidi)
+ {
+ if (!last_it || (visual_pos >= max_vpos))
+ {
+ last_it = it;
+ max_vpos = visual_pos;
+ }
+ }
+ else
+#endif
+ {
+ last_it = it;
+ }
+ }
}
}