ecore_imf_context_focus_in(m_context.get());
ecore_imf_context_input_panel_show(m_context.get());
+
+ setKeyboardMode(true);
}
void InputMethodContextEfl::onFocusOut()
ecore_imf_context_input_panel_hide(m_context.get());
ecore_imf_context_focus_out(m_context.get());
+
+ setKeyboardMode(false);
}
void InputMethodContextEfl::revertIMFContext()
ewk_view_focused_node_adjust(m_viewImpl->view(), EINA_TRUE);
m_focused = true;
+
+ setKeyboardMode(true);
}
void InputMethodContextEfl::hideIMFContext()
ecore_imf_context_focus_out(m_context.get());
}
+ setKeyboardMode(false);
+
revertIMFContext();
}
takeContext(contextID);
}
-#endif
+void InputMethodContextEfl::setKeyboardMode(bool isOn)
+{
+ Evas_Object* parent = elm_object_parent_widget_get(m_viewImpl->view());
+ while (parent) {
+ const char* type = elm_object_widget_type_get(parent);
+ if (type && !strcmp(type, "elm_win")) {
+ elm_win_keyboard_mode_set(parent, isOn ? ELM_WIN_KEYBOARD_ON : ELM_WIN_KEYBOARD_OFF);
+ return;
+ }
+
+ parent = elm_object_parent_widget_get(parent);
+ }
+}
+#endif // #if ENABLE(TIZEN_ISF_PORT)
}