summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ism/extras/wayland_immodule/wayland_imcontext.c5
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;
}