Fix focus ui mode issue when ewk view get focus.
authorSangYong Park <sy302.park@samsung.com>
Tue, 29 Oct 2013 06:10:11 +0000 (15:10 +0900)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Tue, 29 Oct 2013 08:24:37 +0000 (08:24 +0000)
[Title] Fix focus ui mode issue when ewk view get focus.
[Issue#] N_SE-56371
[Problem] Focus ring did not appeared when ewk view get focus in focus ui mode.
[Cause] Do not activate focus ui.
[Solution] Activate focus ui when ewk view get focus.

Change-Id: Ied0456733767a84021133385514391eb96307bac

Source/WebKit2/UIProcess/API/efl/ewk_view.cpp
Source/WebKit2/UIProcess/WebPageProxy.h
Source/WebKit2/UIProcess/efl/InputMethodContextEfl.cpp
Source/WebKit2/UIProcess/efl/WebPageProxyEfl.cpp

index 4af0403..33cceb9 100755 (executable)
@@ -299,6 +299,11 @@ static Eina_Bool _ewk_view_smart_focus_in(Ewk_View_Smart_Data* smartData)
     if (impl->inputMethodContext())
         impl->inputMethodContext()->onFocusIn();
 #endif
+
+#if ENABLE(TIZEN_FOCUS_UI)
+    impl->page()->resumeFocusUI();
+#endif
+
     return true;
 }
 
@@ -315,6 +320,10 @@ static Eina_Bool _ewk_view_smart_focus_out(Ewk_View_Smart_Data* smartData)
         impl->inputMethodContext()->onFocusOut();
 #endif
 
+#if ENABLE(TIZEN_FOCUS_UI)
+    impl->page()->suspendFocusUI();
+#endif
+
 #if ENABLE(TIZEN_WEBKIT2_TEXT_SELECTION)
     if (impl->pageClient->isTextSelectionMode() && ewk_settings_clear_text_selection_automatically_get(impl->settings()))
         impl->pageClient->setIsTextSelectionMode(false);
index a600a36..ce3b483 100755 (executable)
@@ -1063,6 +1063,8 @@ public:
 #if ENABLE(TIZEN_FOCUS_UI)
     bool focusUIEnabled() const { return m_focusUIEnabled; }
     void setFocusUIEnabled(bool);
+    void suspendFocusUI();
+    void resumeFocusUI();
 #endif
 
 private:
index 9189c14..ee482b9 100755 (executable)
@@ -646,10 +646,6 @@ void InputMethodContextEfl::onFocusOut()
     }
 #endif
 
-#if ENABLE(TIZEN_FOCUS_UI)
-    m_viewImpl->page()->setFocusUIEnabled(false);
-#endif
-
     if (!m_context || !m_focused)
         return;
 
index d9ca56f..507bdba 100755 (executable)
@@ -1317,5 +1317,21 @@ void WebPageProxy::setFocusUIEnabled(bool enabled)
 
     process()->send(Messages::WebPage::SetFocusUIEnabled(enabled), m_pageID);
 }
+
+void WebPageProxy::suspendFocusUI()
+{
+    if (!m_focusUIEnabled)
+        return;
+
+    process()->send(Messages::WebPage::SetFocusUIEnabled(false), m_pageID);
+}
+
+void WebPageProxy::resumeFocusUI()
+{
+    if (!m_focusUIEnabled)
+        return;
+
+    process()->send(Messages::WebPage::SetFocusUIEnabled(true), m_pageID);
+}
 #endif
 } // namespace WebKit