diff options
-rw-r--r-- | ism/extras/wayland_immodule/wayland_imcontext.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/ism/extras/wayland_immodule/wayland_imcontext.c b/ism/extras/wayland_immodule/wayland_imcontext.c index 6a75c037..61ee1b56 100644 --- a/ism/extras/wayland_immodule/wayland_imcontext.c +++ b/ism/extras/wayland_immodule/wayland_imcontext.c @@ -2800,6 +2800,8 @@ _prediction_hint_data_foreach_cb(const Eina_Hash *hash, const void *key, void wayland_im_context_focus_in(Ecore_IMF_Context *ctx) { + Eina_Bool focused = g_focused; + LOGD ("ctx : %p. enable : %d, on demand : %d", ctx, ecore_imf_context_input_panel_enabled_get(ctx), ecore_imf_context_input_panel_show_on_demand_get (ctx)); @@ -2824,7 +2826,8 @@ wayland_im_context_focus_in(Ecore_IMF_Context *ctx) } if (_TV) { - if (hw_keyboard_mode == EINA_TRUE) { + // Set to SW keyboard mode only when the focus state is changed from OUT to IN. + if (!focused && hw_keyboard_mode == EINA_TRUE) { vconf_set_bool (VCONFKEY_ISF_HW_KEYBOARD_INPUT_DETECTED, 0); hw_keyboard_mode = EINA_FALSE; } |