forked from enlightenment/efl
scim-immodule: fix bug candidate window covers the preedit string when preedit string appears in 2 line.
SVN revision: 69664
This commit is contained in:
parent
fbe88302dc
commit
48a05444ec
|
@ -600,3 +600,8 @@
|
||||||
* Implement popup windows
|
* Implement popup windows
|
||||||
* Implement ecore_wl_window_transparent_set function
|
* Implement ecore_wl_window_transparent_set function
|
||||||
* Implement function to allow setting Ecore_Wl_Window type.
|
* Implement function to allow setting Ecore_Wl_Window type.
|
||||||
|
|
||||||
|
2012-03-26 Jihoon Kim (jihoon)
|
||||||
|
|
||||||
|
* scim-immodule: fix bug candidate window covers the preedit string when preedit string appears in 2 line.
|
||||||
|
|
||||||
|
|
|
@ -1014,16 +1014,13 @@ isf_imf_context_cursor_location_set(Ecore_IMF_Context *ctx, int cx, int cy, int
|
||||||
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
|
EcoreIMFContextISF *context_scim = (EcoreIMFContextISF *)ecore_imf_context_data_get(ctx);
|
||||||
Ecore_Evas *ee;
|
Ecore_Evas *ee;
|
||||||
int canvas_x, canvas_y;
|
int canvas_x, canvas_y;
|
||||||
|
int new_cursor_x, new_cursor_y;
|
||||||
|
|
||||||
if (cw == 0 && ch == 0)
|
if (cw == 0 && ch == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (context_scim && context_scim->impl && context_scim == _focused_ic)
|
if (context_scim && context_scim->impl && context_scim == _focused_ic)
|
||||||
{
|
{
|
||||||
// Don't update spot location while updating preedit string.
|
|
||||||
if (context_scim->impl->preedit_updating)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (context_scim->impl->client_canvas)
|
if (context_scim->impl->client_canvas)
|
||||||
{
|
{
|
||||||
ee = ecore_evas_ecore_evas_get(context_scim->impl->client_canvas);
|
ee = ecore_evas_ecore_evas_get(context_scim->impl->client_canvas);
|
||||||
|
@ -1039,10 +1036,17 @@ isf_imf_context_cursor_location_set(Ecore_IMF_Context *ctx, int cx, int cy, int
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (context_scim->impl->cursor_x != canvas_x + cx || context_scim->impl->cursor_y != canvas_y + cy + ch)
|
new_cursor_x = canvas_x + cx;
|
||||||
|
new_cursor_y = canvas_y + cy + ch;
|
||||||
|
|
||||||
|
// Don't update spot location while updating preedit string.
|
||||||
|
if (context_scim->impl->preedit_updating && (context_scim->impl->cursor_y == new_cursor_y))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (context_scim->impl->cursor_x != new_cursor_x || context_scim->impl->cursor_y != new_cursor_y)
|
||||||
{
|
{
|
||||||
context_scim->impl->cursor_x = canvas_x + cx;
|
context_scim->impl->cursor_x = new_cursor_x;
|
||||||
context_scim->impl->cursor_y = canvas_y + cy + ch;
|
context_scim->impl->cursor_y = new_cursor_y;
|
||||||
_panel_client.prepare(context_scim->id);
|
_panel_client.prepare(context_scim->id);
|
||||||
panel_req_update_spot_location(context_scim);
|
panel_req_update_spot_location(context_scim);
|
||||||
_panel_client.send();
|
_panel_client.send();
|
||||||
|
|
Loading…
Reference in New Issue