const EditorState& editor = m_viewImpl->page()->editorState();
if (editor.isContentEditable) {
- showIMFContext(editor, true);
-#if ENABLE(TIZEN_INPUT_TAG_EXTENSION)
- if (editor.inputMethodHints == "date"
- || editor.inputMethodHints == "datetime"
- || editor.inputMethodHints == "datetime-local"
- || editor.inputMethodHints == "month"
- || editor.inputMethodHints == "time"
- || editor.inputMethodHints == "week") {
- if (m_inputPickerType == -1)
- return;
- }
-#endif
if (setFocus)
evas_object_focus_set(m_viewImpl->view(), true);
+
+ showIMFContext(editor, true);
} else
hideIMFContext();
}
void InputMethodContextEfl::showIMFContext(const EditorState& editor, bool isUserAction)
{
Ewk_Settings* settings = ewk_view_settings_get(m_viewImpl->view());
- if (!isUserAction) {
+ bool isContextTransition = (m_context ? m_contextID != editor.inputMethodContextID : m_state != ECORE_IMF_INPUT_PANEL_STATE_HIDE);
+
+ if (!isUserAction && !isContextTransition) {
if (!ewk_settings_uses_keypad_without_user_action_get(settings) || (m_focused && m_contextID == editor.inputMethodContextID))
return;
}
+ if (m_contextID != editor.inputMethodContextID)
+ hideIMFContext();
+
m_focused = true;
#if ENABLE(TIZEN_INPUT_TAG_EXTENSION)
if (m_inputPickerType >= 0) {
showInputPicker(editor);
- revertIMFContext();
m_contextID = editor.inputMethodContextID;
return;
else
ewkViewDataListShowRequest(m_viewImpl->view(), EWK_INPUT_TYPE_TEXT, optionList);
- revertIMFContext();
m_contextID = editor.inputMethodContextID;
return;