Edje entry: Pass correct cursor position and text to imf in case of selection

Summary:
When selection is there we are passing the whole text and position to imf
which sees that next character like matras (eg .Hindi) should be inserted
(if pressed) and when matra comes the selected text is gone and only matra
remains in the entry.

eg:  we have text in hindi like मानक, select all and hit matra in keyboard
selected text is gone, only matra is there.

@fix

Test Plan: Tested in Tizen device

Reviewers: jihoon, tasn, herdsman, thiepha

Subscribers: Hermet, shilpasingh, raster, subodh, jpeg, cedric

Differential Revision: https://phab.enlightenment.org/D2951
This commit is contained in:
Subodh Kumar 2016-08-29 17:23:07 +09:00 committed by Carsten Haitzler (Rasterman)
parent a9fbe6cb8f
commit 0f4cdf7a48
1 changed files with 25 additions and 5 deletions

View File

@ -4417,22 +4417,42 @@ _edje_entry_imf_retrieve_surrounding_cb(void *data, Ecore_IMF_Context *ctx EINA_
for (itr = plain_text; itr && *itr; ++itr)
*itr = '*';
}
*text = strdup(plain_text);
if (en->have_selection)
{
if (en->sel_start)
{
*text = strndup(plain_text,
evas_textblock_cursor_pos_get(en->sel_start));
}
else
{
*text = strdup(plain_text);
}
}
else
{
*text = strdup(plain_text);
}
free(plain_text);
plain_text = NULL;
}
else
*text = strdup("");
{
*text = strdup("");
}
}
else
*text = strdup("");
{
*text = strdup("");
}
}
if (cursor_pos)
{
if (en->cursor)
if (en->have_selection && en->sel_start)
*cursor_pos = evas_textblock_cursor_pos_get(en->sel_start);
else if (en->cursor)
*cursor_pos = evas_textblock_cursor_pos_get(en->cursor);
else
*cursor_pos = 0;