Title: [127842] trunk/Source/WebKit2
Revision
127842
Author
commit-qu...@webkit.org
Date
2012-09-07 01:28:09 -0700 (Fri, 07 Sep 2012)

Log Message

[EFL][WK2] Add APIs to enable or disable the mouse events of the ewk_view.
https://bugs.webkit.org/show_bug.cgi?id=88631

Patch by Eunmi Lee <eunmi15....@samsung.com> on 2012-09-07
Reviewed by Gyuyoung Kim.

We can turn on/off the mouse events of the ewk_view using the mouse
events enabling API. This API can be used when we want to turn off the
mouse events on the touchscreen device to process the touch events
instead of the mouse events.

* UIProcess/API/efl/ewk_view.cpp:
(_Ewk_View_Private_Data):
(_Ewk_View_Private_Data::_Ewk_View_Private_Data):
(_ewk_view_smart_add):
(ewk_view_mouse_events_enabled_set):
(ewk_view_mouse_events_enabled_get):
* UIProcess/API/efl/ewk_view.h:
* UIProcess/API/efl/tests/test_ewk2_view.cpp:
(TEST_F):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (127841 => 127842)


--- trunk/Source/WebKit2/ChangeLog	2012-09-07 08:19:10 UTC (rev 127841)
+++ trunk/Source/WebKit2/ChangeLog	2012-09-07 08:28:09 UTC (rev 127842)
@@ -1,3 +1,25 @@
+2012-09-07  Eunmi Lee  <eunmi15....@samsung.com>
+
+        [EFL][WK2] Add APIs to enable or disable the mouse events of the ewk_view.
+        https://bugs.webkit.org/show_bug.cgi?id=88631
+
+        Reviewed by Gyuyoung Kim.
+
+        We can turn on/off the mouse events of the ewk_view using the mouse
+        events enabling API. This API can be used when we want to turn off the
+        mouse events on the touchscreen device to process the touch events
+        instead of the mouse events.
+
+        * UIProcess/API/efl/ewk_view.cpp:
+        (_Ewk_View_Private_Data):
+        (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
+        (_ewk_view_smart_add):
+        (ewk_view_mouse_events_enabled_set):
+        (ewk_view_mouse_events_enabled_get):
+        * UIProcess/API/efl/ewk_view.h:
+        * UIProcess/API/efl/tests/test_ewk2_view.cpp:
+        (TEST_F):
+
 2012-09-07  Tim Horton  <timothy_hor...@apple.com>
 
         Add optional debug logging when we fall into/out of threaded scrolling

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp (127841 => 127842)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp	2012-09-07 08:19:10 UTC (rev 127841)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp	2012-09-07 08:28:09 UTC (rev 127842)
@@ -92,6 +92,7 @@
     LoadingResourcesMap loadingResourcesMap;
     Ewk_Back_Forward_List* backForwardList;
     OwnPtr<Ewk_Settings> settings;
+    bool areMouseEventsEnabled;
 
     WebPopupMenuProxyEfl* popupMenuProxy;
     Eina_List* popupMenuItems;
@@ -109,6 +110,7 @@
     _Ewk_View_Private_Data()
         : cursorObject(0)
         , backForwardList(0)
+        , areMouseEventsEnabled(false)
         , popupMenuProxy(0)
         , popupMenuItems(0)
 #ifdef HAVE_ECORE_X
@@ -413,13 +415,12 @@
     evas_object_smart_member_add(smartData->image, ewkView);
     evas_object_show(smartData->image);
 
+    ewk_view_mouse_events_enabled_set(ewkView, true);
+
 #define CONNECT(s, c) evas_object_event_callback_add(ewkView, s, c, smartData)
     CONNECT(EVAS_CALLBACK_FOCUS_IN, _ewk_view_on_focus_in);
     CONNECT(EVAS_CALLBACK_FOCUS_OUT, _ewk_view_on_focus_out);
     CONNECT(EVAS_CALLBACK_MOUSE_WHEEL, _ewk_view_on_mouse_wheel);
-    CONNECT(EVAS_CALLBACK_MOUSE_DOWN, _ewk_view_on_mouse_down);
-    CONNECT(EVAS_CALLBACK_MOUSE_UP, _ewk_view_on_mouse_up);
-    CONNECT(EVAS_CALLBACK_MOUSE_MOVE, _ewk_view_on_mouse_move);
     CONNECT(EVAS_CALLBACK_KEY_DOWN, _ewk_view_on_key_down);
     CONNECT(EVAS_CALLBACK_KEY_UP, _ewk_view_on_key_up);
 #undef CONNECT
@@ -1552,3 +1553,34 @@
 
     return true;
 }
+
+Eina_Bool ewk_view_mouse_events_enabled_set(Evas_Object* ewkView, Eina_Bool enabled)
+{
+    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+
+    enabled = !!enabled;
+    if (priv->areMouseEventsEnabled == enabled)
+        return true;
+
+    priv->areMouseEventsEnabled = enabled;
+    if (enabled) {
+        evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MOUSE_DOWN, _ewk_view_on_mouse_down, smartData);
+        evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MOUSE_UP, _ewk_view_on_mouse_up, smartData);
+        evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MOUSE_MOVE, _ewk_view_on_mouse_move, smartData);
+    } else {
+        evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MOUSE_DOWN, _ewk_view_on_mouse_down);
+        evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MOUSE_UP, _ewk_view_on_mouse_up);
+        evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MOUSE_MOVE, _ewk_view_on_mouse_move);
+    }
+
+    return true;
+}
+
+Eina_Bool ewk_view_mouse_events_enabled_get(const Evas_Object* ewkView)
+{
+    EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
+    EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
+
+    return priv->areMouseEventsEnabled;
+}

Modified: trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h (127841 => 127842)


--- trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h	2012-09-07 08:19:10 UTC (rev 127841)
+++ trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h	2012-09-07 08:28:09 UTC (rev 127842)
@@ -630,6 +630,28 @@
  */
 EAPI Eina_Bool ewk_view_popup_menu_close(Evas_Object *o);
 
+/**
+ * Sets whether the ewk_view supports the mouse events or not.
+ *
+ * The ewk_view will support the mouse events if EINA_TRUE or not support the
+ * mouse events otherwise. The default value is EINA_TRUE.
+ *
+ * @param o view object to enable/disable the mouse events
+ * @param enabled a state to set
+ *
+ * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
+ */
+EAPI Eina_Bool ewk_view_mouse_events_enabled_set(Evas_Object *o, Eina_Bool enabled);
+
+/**
+ * Queries if the ewk_view supports the mouse events.
+ *
+ * @param o view object to query if the mouse events are enabled
+ *
+ * @return @c EINA_TRUE if the mouse events are enabled or @c EINA_FALSE otherwise
+ */
+EAPI Eina_Bool ewk_view_mouse_events_enabled_get(const Evas_Object *o);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp (127841 => 127842)


--- trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp	2012-09-07 08:19:10 UTC (rev 127841)
+++ trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp	2012-09-07 08:28:09 UTC (rev 127842)
@@ -24,6 +24,7 @@
 #include "UnitTestUtils/EWK2UnitTestServer.h"
 #include <EWebKit2.h>
 #include <Ecore.h>
+#include <Eina.h>
 #include <gtest/gtest.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
@@ -287,3 +288,15 @@
     ewk_view_html_string_load(webView(), buttonHTML, "file:///", 0);
     waitUntilTitleChangedTo("299"); // button of big button theme has 299px as padding (150 to -150)
 }
+
+TEST_F(EWK2UnitTestBase, ewk_view_mouse_events_enabled)
+{
+    ASSERT_TRUE(ewk_view_mouse_events_enabled_set(webView(), EINA_TRUE));
+    ASSERT_TRUE(ewk_view_mouse_events_enabled_get(webView()));
+
+    ASSERT_TRUE(ewk_view_mouse_events_enabled_set(webView(), 2));
+    ASSERT_TRUE(ewk_view_mouse_events_enabled_get(webView()));
+
+    ASSERT_TRUE(ewk_view_mouse_events_enabled_set(webView(), EINA_FALSE));
+    ASSERT_FALSE(ewk_view_mouse_events_enabled_get(webView()));
+}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to