Fixed that context menu doesn't disappear by selecting buttons besides webview in...
[framework/web/webkit-efl.git] / Source / WebKit2 / UIProcess / API / efl / ewk_view.cpp
index 4ac70a3..e894d35 100755 (executable)
@@ -421,9 +421,6 @@ static Eina_Bool _ewk_view_smart_focus_in(Ewk_View_Smart_Data* smartData)
     priv->pageClient->setViewFocused(true);
 #endif // #if OS(TIZEN)
     priv->pageClient->page()->viewStateDidChange(WebPageProxy::ViewIsFocused | WebPageProxy::ViewWindowIsActive);
-#if ENABLE(TIZEN_ISF_PORT)
-    priv->pageClient->handleInputMethodForFocusedNode();
-#endif
     return true;
 }
 
@@ -431,15 +428,26 @@ static Eina_Bool _ewk_view_smart_focus_out(Ewk_View_Smart_Data* smartData)
 {
     EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false)
 #if ENABLE(TIZEN_ISF_PORT)
-    Ecore_IMF_Context* imContext = priv->pageClient->getIMFContext();
-    Ecore_IMF_Input_Panel_State state = ecore_imf_context_input_panel_state_get(imContext);
-    if (imContext && state == ECORE_IMF_INPUT_PANEL_STATE_SHOW) {
-        ecore_imf_context_input_panel_hide(imContext);
-        ecore_imf_context_focus_out(imContext);
-        priv->pageClient->setImeState(false);
-        LOG(ISF, "[STATUS] HIDE - focus_out\n");
+    // Keypad should be hidden rapidly when moving focus on elementary
+    // because Ecore-ime doesn't support it.
+    Ecore_IMF_Context* context = priv->pageClient->getIMFContext();
+    if (context && priv->pageClient->getInputMethodState()) {
+        LOG(ISF, "%s\n - keypad status : hide\n", __func__);
+        ecore_imf_context_input_panel_hide(context);
+        ecore_imf_context_focus_out(context);
     }
 #endif
+
+#if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
+    if (priv->pageClient->isTextSelectionMode())
+        priv->pageClient->setIsTextSelectionMode(false);
+#endif
+
+#if ENABLE(TIZEN_CONTEXT_MENU_WEBKIT_2)
+    if (priv->pageClient->isContextMenuVisible())
+        priv->pageClient->page()->hideContextMenu();
+#endif
+
 #if OS(TIZEN)
     priv->pageClient->setViewFocused(false);
 #endif // #if OS(TIZEN)
@@ -505,10 +513,6 @@ static Eina_Bool _ewk_view_smart_mouse_down(Ewk_View_Smart_Data* smartData, cons
 {
     EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false)
 
-#if OS(TIZEN)
-    priv->pageClient->handleInputMethodMousePress();
-#endif // #if OS(TIZEN)
-
     Evas_Point position = {smartData->view.x, smartData->view.y};
     priv->pageClient->page()->handleMouseEvent(NativeWebMouseEvent(downEvent, &position));
     return true;
@@ -848,7 +852,6 @@ static void _ewk_view_on_touch_down(void* data, Evas* canvas, Evas_Object* ewkVi
             ecore_animator_del(priv->touchAnimator);
         priv->touchAnimator = ecore_animator_add(_ewk_view_touch_animator, smartData);
 #if OS(TIZEN)
-        priv->pageClient->handleInputMethodMousePress();
         evas_touch_point_list_nth_xy_get(canvas, 0, &priv->touchDownPoint.x, &priv->touchDownPoint.y);
         priv->exceedTouchMoveThreshold = false;
 #endif // #if OS(TIZEN)
@@ -3366,7 +3369,6 @@ Eina_Bool ewk_view_script_execute(Evas_Object* ewkView, const char* script, Ewk_
     EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
     EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
     EINA_SAFETY_ON_NULL_RETURN_VAL(script, false);
-    EINA_SAFETY_ON_NULL_RETURN_VAL(callback, false);
 
     Ewk_View_Callback_Context* context = new Ewk_View_Callback_Context;
     context->scriptExecuteCallback = callback;