forked from enlightenment/efl
Edje: Fixed edje_object_part_text_cursor_content_get to handle non-english.
Thanks to Brian Wang for reporting. SVN revision: 50953
This commit is contained in:
parent
6bc0a6cb14
commit
f0a716f970
|
@ -2437,16 +2437,21 @@ _edje_entry_cursor_content_get(Edje_Real_Part *rp, Edje_Cursor cur)
|
|||
Evas_Textblock_Cursor *c = _cursor_get(rp, cur);
|
||||
const char *s;
|
||||
static char buf[16];
|
||||
int pos, pos2, ch;
|
||||
int pos, pos2, i;
|
||||
if (!c) return NULL;
|
||||
s = evas_textblock_node_format_text_get(evas_textblock_cursor_format_get(c));
|
||||
if (s) return s;
|
||||
s = evas_textblock_cursor_paragraph_text_get(c);
|
||||
if (!s) return NULL;
|
||||
pos = evas_textblock_cursor_pos_get(c);
|
||||
pos2 = evas_string_char_next_get(s, pos, &ch);
|
||||
strncpy(buf, s + pos, pos2 - pos);
|
||||
buf[pos2 - pos] = 0;
|
||||
/* Get the actual utf8 pos */
|
||||
for (i = 0 ; pos > 0 ; pos--)
|
||||
{
|
||||
i = evas_string_char_next_get(s, i, NULL);
|
||||
}
|
||||
pos2 = evas_string_char_next_get(s, i, NULL);
|
||||
strncpy(buf, s + i, pos2 - i);
|
||||
buf[pos2 - i] = 0;
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue