Changeset 127842 in webkit


Ignore:
Timestamp:
Sep 7, 2012 1:28:09 AM (12 years ago)
Author:
commit-queue@webkit.org
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.lee@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):

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r127837 r127842  
     12012-09-07  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-07  Tim Horton  <timothy_horton@apple.com>
    224
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.cpp

    r127686 r127842  
    9393    Ewk_Back_Forward_List* backForwardList;
    9494    OwnPtr<Ewk_Settings> settings;
     95    bool areMouseEventsEnabled;
    9596
    9697    WebPopupMenuProxyEfl* popupMenuProxy;
     
    110111        : cursorObject(0)
    111112        , backForwardList(0)
     113        , areMouseEventsEnabled(false)
    112114        , popupMenuProxy(0)
    113115        , popupMenuItems(0)
     
    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);
     
    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}
  • trunk/Source/WebKit2/UIProcess/API/efl/ewk_view.h

    r127444 r127842  
    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}
  • trunk/Source/WebKit2/UIProcess/API/efl/tests/test_ewk2_view.cpp

    r127823 r127842  
    2525#include <EWebKit2.h>
    2626#include <Ecore.h>
     27#include <Eina.h>
    2728#include <gtest/gtest.h>
    2829#include <wtf/OwnPtr.h>
     
    288289    waitUntilTitleChangedTo("299"); // button of big button theme has 299px as padding (150 to -150)
    289290}
     291
     292TEST_F(EWK2UnitTestBase, ewk_view_mouse_events_enabled)
     293{
     294    ASSERT_TRUE(ewk_view_mouse_events_enabled_set(webView(), EINA_TRUE));
     295    ASSERT_TRUE(ewk_view_mouse_events_enabled_get(webView()));
     296
     297    ASSERT_TRUE(ewk_view_mouse_events_enabled_set(webView(), 2));
     298    ASSERT_TRUE(ewk_view_mouse_events_enabled_get(webView()));
     299
     300    ASSERT_TRUE(ewk_view_mouse_events_enabled_set(webView(), EINA_FALSE));
     301    ASSERT_FALSE(ewk_view_mouse_events_enabled_get(webView()));
     302}
Note: See TracChangeset for help on using the changeset viewer.