encoder->encode(hasComposition);
#if ENABLE(TIZEN_ISF_PORT)
- encoder->encode(isTapEventHandling);
encoder->encode(inputMethodContextID);
encoder->encode(inputMethodHints);
encoder->encode(surroundingText);
return false;
#if ENABLE(TIZEN_ISF_PORT)
- if (!decoder->decode(result.isTapEventHandling))
- return false;
-
if (!decoder->decode(result.inputMethodContextID))
return false;
, isInPasswordField(false)
, hasComposition(false)
#if ENABLE(TIZEN_ISF_PORT)
- , isTapEventHandling(false)
, inputMethodContextID(0)
, cursorPosition(0)
#endif
bool isInPasswordField;
bool hasComposition;
#if ENABLE(TIZEN_ISF_PORT)
- bool isTapEventHandling;
uintptr_t inputMethodContextID;
WTF::String inputMethodHints;
WTF::String surroundingText;
m_gestureEventQueue.removeFirst();
m_pageClient->doneWithGestureEvent(event, handled);
#endif
+
#if ENABLE(TIZEN_ISF_PORT)
- if (m_isVisible && type == WebEvent::GestureSingleTap && m_editorState.isContentEditable) {
-#if ENABLE(TIZEN_INPUT_TAG_EXTENSION)
- if (m_editorState.inputMethodHints == "date"
- || m_editorState.inputMethodHints == "datetime"
- || m_editorState.inputMethodHints == "datetime-local"
- || m_editorState.inputMethodHints == "month"
- || m_editorState.inputMethodHints == "time"
- || m_editorState.inputMethodHints == "week") {
- InputMethodContextEfl* inputMethodContext = static_cast<PageClientImpl*>(m_pageClient)->viewImpl()->inputMethodContext();
- if (inputMethodContext->inputPickerType() == -1)
- break;
- }
-#endif
- evas_object_focus_set(viewWidget(), true);
+ if (m_isVisible && type == WebEvent::GestureSingleTap) {
+ InputMethodContextEfl* inputMethodContext = static_cast<PageClientImpl*>(m_pageClient)->viewImpl()->inputMethodContext();
+ inputMethodContext->updateTextInputStateByUserAction(true);
}
#endif
break;
if (m_context)
ecore_imf_context_cursor_position_set(m_context.get(), editor.cursorPosition);
}
+
+void InputMethodContextEfl::updateTextInputStateByUserAction(bool setFocus)
+{
+ const EditorState& editor = m_viewImpl->page()->editorState();
+
+ if (editor.isContentEditable) {
+ showIMFContext(editor, true);
+ if (setFocus)
+ evas_object_focus_set(m_viewImpl->view(), true);
+ } else
+ hideIMFContext();
+}
#else
void InputMethodContextEfl::updateTextInputState()
{
m_doNotHandleFakeKeyEvent = false;
}
-void InputMethodContextEfl::showIMFContext(const EditorState& editor)
+void InputMethodContextEfl::showIMFContext(const EditorState& editor, bool isUserAction)
{
Ewk_Settings* settings = ewk_view_settings_get(m_viewImpl->view());
- if (!editor.isTapEventHandling) {
+ if (!isUserAction) {
if (!ewk_settings_uses_keypad_without_user_action_get(settings) || (m_focused && m_contextID == editor.inputMethodContextID))
return;
}
void onFocusIn();
void onFocusOut();
void resetIMFContext();
+ void updateTextInputStateByUserAction(bool);
void hideIMFContext();
bool isIMEPostion(int, int);
void removeIMFContext(uintptr_t);
PassOwnPtr<Ecore_IMF_Context> takeContext(uintptr_t);
void setIMFContext(const EditorState&);
void revertIMFContext();
- void showIMFContext(const EditorState&);
+ void showIMFContext(const EditorState&, bool = false);
void destroyIMFContextList();
void setState(int state) { m_state = state; }
void setIMERect(const WebCore::IntRect& rect) { m_imeRect = rect; }
#endif
#if ENABLE(TIZEN_ISF_PORT)
- result.isTapEventHandling = (currentEvent() && currentEvent()->type() == WebEvent::GestureSingleTap);
-
if (!result.shouldIgnoreCompositionSelectionChange && result.isContentEditable) {
result.inputMethodContextID = reinterpret_cast<uintptr_t>(rootEditableElement);