From 1b2616d47e20df60a03552fc7dcc5fe13759e3dc Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Mon, 23 Sep 2013 15:40:39 +0900 Subject: [PATCH] Save current active X window ID in focus-in for candidate window It's for fixing N_SE-52701 Change-Id: If1ce642f4332d59ffa22bacdf1ccec28a364b9e9 --- ism/extras/efl_immodule/isf_imf_context.cpp | 2 ++ ism/extras/efl_immodule/isf_imf_control_ui.cpp | 4 ++-- ism/extras/efl_immodule/isf_imf_control_ui.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ism/extras/efl_immodule/isf_imf_context.cpp b/ism/extras/efl_immodule/isf_imf_context.cpp index 57cc725..9c76651 100644 --- a/ism/extras/efl_immodule/isf_imf_context.cpp +++ b/ism/extras/efl_immodule/isf_imf_context.cpp @@ -1283,6 +1283,8 @@ isf_imf_context_focus_in (Ecore_IMF_Context *ctx) if (need_reg) _panel_client.register_input_context (context_scim->id, context_scim->impl->si->get_factory_uuid ()); if (need_cap) set_ic_capabilities (context_scim); + save_current_xid (ctx); + panel_req_focus_in (context_scim); // panel_req_update_spot_location (context_scim); // panel_req_update_factory_info (context_scim); diff --git a/ism/extras/efl_immodule/isf_imf_control_ui.cpp b/ism/extras/efl_immodule/isf_imf_control_ui.cpp index 8afbe04..5b6e7a1 100644 --- a/ism/extras/efl_immodule/isf_imf_control_ui.cpp +++ b/ism/extras/efl_immodule/isf_imf_control_ui.cpp @@ -177,7 +177,7 @@ static Ecore_X_Window _client_window_id_get (Ecore_IMF_Context *ctx) return xid; } -static void _save_current_xid (Ecore_IMF_Context *ctx) +void save_current_xid (Ecore_IMF_Context *ctx) { Ecore_X_Window xid = 0, rootwin_xid = 0; @@ -493,7 +493,7 @@ void isf_imf_context_input_panel_show (Ecore_IMF_Context* ctx) active_context_canvas = (Evas *)ecore_imf_context_client_canvas_get (ctx); /* Set the current XID of the active window into the root window property */ - _save_current_xid (ctx); + save_current_xid (ctx); if (get_desktop_mode ()) { LOGD ("IME will not appear in case of desktop mode.\n"); diff --git a/ism/extras/efl_immodule/isf_imf_control_ui.h b/ism/extras/efl_immodule/isf_imf_control_ui.h index 2853876..1c5b589 100644 --- a/ism/extras/efl_immodule/isf_imf_control_ui.h +++ b/ism/extras/efl_immodule/isf_imf_control_ui.h @@ -35,6 +35,7 @@ extern "C" int hw_keyboard_num_get (); bool process_update_input_context (int type, int value); Ecore_IMF_Context *get_using_ic (Ecore_IMF_Input_Panel_Event type, int value); + void save_current_xid (Ecore_IMF_Context *ctx); void isf_imf_input_panel_init (); void isf_imf_input_panel_shutdown (); -- 2.7.4