Source/WebKit2/ChangeLog

 12012-09-06 Eunmi Lee <eunmi15.lee@samsung.com>
 2
 3 [EFL][WK2] Add APIs to enable or disable the mouse events of the ewk_view.
 4 https://bugs.webkit.org/show_bug.cgi?id=88631
 5
 6 Reviewed by Gyuyoung Kim.
 7
 8 We can turn on/off the mouse events of the ewk_view using the mouse
 9 events enabling API. This API can be used when we want to turn off the
 10 mouse events on the touchscreen device to process the touch events
 11 instead of the mouse events.
 12
 13 * UIProcess/API/efl/ewk_view.cpp:
 14 (_Ewk_View_Private_Data):
 15 (_Ewk_View_Private_Data::_Ewk_View_Private_Data):
 16 (_ewk_view_smart_add):
 17 (ewk_view_mouse_events_enabled_set):
 18 (ewk_view_mouse_events_enabled_get):
 19 * UIProcess/API/efl/ewk_view.h:
 20 * UIProcess/API/efl/tests/test_ewk2_view.cpp:
 21 (TEST_F):
 22
1232012-09-05 Alexey Proskuryakov <ap@apple.com>
224
325 [WK2] Annotate multi-process FIXMEs with bug numbers

Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

@@struct _Ewk_View_Private_Data {
9292 LoadingResourcesMap loadingResourcesMap;
9393 Ewk_Back_Forward_List* backForwardList;
9494 OwnPtr<Ewk_Settings> settings;
 95 bool areMouseEventsEnabled;
9596
9697 WebPopupMenuProxyEfl* popupMenuProxy;
9798 Eina_List* popupMenuItems;

@@struct _Ewk_View_Private_Data {
109110 _Ewk_View_Private_Data()
110111 : cursorObject(0)
111112 , backForwardList(0)
 113 , areMouseEventsEnabled(false)
112114 , popupMenuProxy(0)
113115 , popupMenuItems(0)
114116#ifdef HAVE_ECORE_X

@@static void _ewk_view_smart_add(Evas_Object* ewkView)
413415 evas_object_smart_member_add(smartData->image, ewkView);
414416 evas_object_show(smartData->image);
415417
 418 ewk_view_mouse_events_enabled_set(ewkView, true);
 419
416420#define CONNECT(s, c) evas_object_event_callback_add(ewkView, s, c, smartData)
417421 CONNECT(EVAS_CALLBACK_FOCUS_IN, _ewk_view_on_focus_in);
418422 CONNECT(EVAS_CALLBACK_FOCUS_OUT, _ewk_view_on_focus_out);
419423 CONNECT(EVAS_CALLBACK_MOUSE_WHEEL, _ewk_view_on_mouse_wheel);
420  CONNECT(EVAS_CALLBACK_MOUSE_DOWN, _ewk_view_on_mouse_down);
421  CONNECT(EVAS_CALLBACK_MOUSE_UP, _ewk_view_on_mouse_up);
422  CONNECT(EVAS_CALLBACK_MOUSE_MOVE, _ewk_view_on_mouse_move);
423424 CONNECT(EVAS_CALLBACK_KEY_DOWN, _ewk_view_on_key_down);
424425 CONNECT(EVAS_CALLBACK_KEY_UP, _ewk_view_on_key_up);
425426#undef CONNECT

@@Eina_Bool ewk_view_popup_menu_select(Evas_Object* ewkView, unsigned int selected
15521553
15531554 return true;
15541555}
 1556
 1557Eina_Bool ewk_view_mouse_events_enabled_set(Evas_Object* ewkView, Eina_Bool enabled)
 1558{
 1559 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
 1560 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
 1561
 1562 enabled = !!enabled;
 1563 if (priv->areMouseEventsEnabled == enabled)
 1564 return true;
 1565
 1566 priv->areMouseEventsEnabled = enabled;
 1567 if (enabled) {
 1568 evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MOUSE_DOWN, _ewk_view_on_mouse_down, smartData);
 1569 evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MOUSE_UP, _ewk_view_on_mouse_up, smartData);
 1570 evas_object_event_callback_add(ewkView, EVAS_CALLBACK_MOUSE_MOVE, _ewk_view_on_mouse_move, smartData);
 1571 } else {
 1572 evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MOUSE_DOWN, _ewk_view_on_mouse_down);
 1573 evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MOUSE_UP, _ewk_view_on_mouse_up);
 1574 evas_object_event_callback_del(ewkView, EVAS_CALLBACK_MOUSE_MOVE, _ewk_view_on_mouse_move);
 1575 }
 1576
 1577 return true;
 1578}
 1579
 1580Eina_Bool ewk_view_mouse_events_enabled_get(const Evas_Object* ewkView)
 1581{
 1582 EWK_VIEW_SD_GET_OR_RETURN(ewkView, smartData, false);
 1583 EWK_VIEW_PRIV_GET_OR_RETURN(smartData, priv, false);
 1584
 1585 return priv->areMouseEventsEnabled;
 1586}

Source/WebKit2/UIProcess/API/efl/ewk_view.h

@@EAPI Eina_Bool ewk_view_popup_menu_select(Evas_Object *o, unsigned int index);
630630 */
631631EAPI Eina_Bool ewk_view_popup_menu_close(Evas_Object *o);
632632
 633/**
 634 * Sets whether the ewk_view supports the mouse events or not.
 635 *
 636 * The ewk_view will support the mouse events if EINA_TRUE or not support the
 637 * mouse events otherwise. The default value is EINA_TRUE.
 638 *
 639 * @param o view object to enable/disable the mouse events
 640 * @param enabled a state to set
 641 *
 642 * @return @c EINA_TRUE on success or @c EINA_FALSE on failure
 643 */
 644EAPI Eina_Bool ewk_view_mouse_events_enabled_set(Evas_Object *o, Eina_Bool enabled);
 645
 646/**
 647 * Queries if the ewk_view supports the mouse events.
 648 *
 649 * @param o view object to query if the mouse events are enabled
 650 *
 651 * @return @c EINA_TRUE if the mouse events are enabled or @c EINA_FALSE otherwise
 652 */
 653EAPI Eina_Bool ewk_view_mouse_events_enabled_get(const Evas_Object *o);
 654
633655#ifdef __cplusplus
634656}
635657#endif

Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp

2424#include "UnitTestUtils/EWK2UnitTestServer.h"
2525#include <EWebKit2.h>
2626#include <Ecore.h>
 27#include <Eina.h>
2728#include <gtest/gtest.h>
2829#include <wtf/OwnPtr.h>
2930#include <wtf/PassOwnPtr.h>

@@TEST_F(EWK2UnitTestBase, ewk_view_settings_get)
265266 ASSERT_TRUE(settings);
266267 ASSERT_EQ(settings, ewk_view_settings_get(webView()));
267268}
 269
 270TEST_F(EWK2UnitTestBase, ewk_view_mouse_events_enabled)
 271{
 272 ASSERT_TRUE(ewk_view_mouse_events_enabled_set(webView(), EINA_TRUE));
 273 ASSERT_TRUE(ewk_view_mouse_events_enabled_get(webView()));
 274
 275 ASSERT_TRUE(ewk_view_mouse_events_enabled_set(webView(), 2));
 276 ASSERT_TRUE(ewk_view_mouse_events_enabled_get(webView()));
 277
 278 ASSERT_TRUE(ewk_view_mouse_events_enabled_set(webView(), EINA_FALSE));
 279 ASSERT_FALSE(ewk_view_mouse_events_enabled_get(webView()));
 280}