Fixed sometimes foucs ring disappear late and is not shown.
[framework/web/webkit-efl.git] / Source / WebKit2 / UIProcess / API / efl / ewk_view.cpp
index 5898418..1404830 100755 (executable)
@@ -413,13 +413,13 @@ static Eina_Bool _ewk_view_smart_gesture_start(Ewk_View_Smart_Data* smartData, c
             impl->focusRing->requestToShow(IntPoint(event->position.x, event->position.y));
         } else if (event->type == EWK_GESTURE_PAN) {
             if (impl->exceedTouchMoveThreshold)
-                impl->focusRing->hide();
+                impl->focusRing->requestToHide();
         } else {
             if (event->type != EWK_GESTURE_LONG_PRESS) {
 #if ENABLE(TIZEN_CONTEXT_MENU_WEBKIT_2)
                 if (!impl->pageClient->isContextMenuVisible())
 #endif
-                    impl->focusRing->hide();
+                    impl->focusRing->requestToHide();
             }
         }
     }
@@ -447,7 +447,7 @@ static Eina_Bool _ewk_view_smart_gesture_start(Ewk_View_Smart_Data* smartData, c
             break;
 #if ENABLE(TIZEN_DRAG_SUPPORT)
         // 1. Check to start dragging.
-        if (hitTestResultData.isDragSupport) {
+        if (hitTestResultData.isDragSupport && !hitTestResultData.isContentEditable) {
             impl->pageClient->setDragPoint(scenePoint);
             if (impl->pageClient->isDragMode()) {
                 impl->pageClient->setDragMode(false);
@@ -461,8 +461,8 @@ static Eina_Bool _ewk_view_smart_gesture_start(Ewk_View_Smart_Data* smartData, c
         }
 #endif
         // 2. Check to show context menu.
-        if (!hitTestResultData.absoluteImageURL.isEmpty()
-            || !hitTestResultData.absoluteLinkURL.isEmpty()) {
+        if ((!hitTestResultData.absoluteImageURL.isEmpty() || !hitTestResultData.absoluteLinkURL.isEmpty())
+            && !hitTestResultData.isContentEditable) {
 #if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
             if (impl->focusRing)
                 impl->focusRing->show(IntRect(), true);
@@ -524,9 +524,9 @@ static Eina_Bool _ewk_view_smart_gesture_end(Ewk_View_Smart_Data* smartData, con
 #if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
     if (impl->focusRing) {
 #if ENABLE(TIZEN_CONTEXT_MENU_WEBKIT_2)
-        if (!impl->pageClient->isContextMenuVisible())
+        if (!impl->pageClient->isContextMenuVisible() || impl->pageClient->isTextSelectionMode())
 #endif
-            impl->focusRing->hide();
+            impl->focusRing->requestToHide();
     }
 #endif
 
@@ -587,7 +587,7 @@ static Eina_Bool _ewk_view_smart_gesture_move(Ewk_View_Smart_Data* smartData, co
 
 #if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
     if (impl->focusRing && !(event->type == EWK_GESTURE_PAN && !impl->exceedTouchMoveThreshold))
-        impl->focusRing->hide();
+        impl->focusRing->requestToHide(true);
 #endif
 
     switch (event->type) {
@@ -1992,6 +1992,10 @@ void ewkViewLoadCommitted(Evas_Object* ewkView)
     EWK_VIEW_IMPL_GET_OR_RETURN(smartData, impl);
     impl->gestureClient->reset();
 #endif
+#if ENABLE(TIZEN_WEBKIT2_FOCUS_RING)
+    if (impl->focusRing)
+        impl->focusRing->hide();
+#endif
 #if ENABLE(TIZEN_ISF_PORT)
     impl->inputMethodContext()->hideIMFContext();
 #endif