WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-106864-20130318161444.patch (text/plain), 21.53 KB, created by
Eunmi Lee
on 2013-03-18 00:18:56 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Eunmi Lee
Created:
2013-03-18 00:18:56 PDT
Size:
21.53 KB
patch
obsolete
>Subversion Revision: 145783 >diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog >index cb10993e07255dde787b6f66f566efab7c64ffa8..f1f1d98a2bd3f902c6fbbc805a9dd06324be7cef 100644 >--- a/Source/WebKit2/ChangeLog >+++ b/Source/WebKit2/ChangeLog >@@ -1,3 +1,58 @@ >+2013-03-18 Eunmi Lee <eunmi15.lee@samsung.com> >+ >+ [EFL][WK2] Process single tap using WebEvent::GestureSingleTap. >+ https://bugs.webkit.org/show_bug.cgi?id=106864 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Send WebEvent::GestureSingleTap event to the web process to perform >+ the clicking when single tap gesture is recognized. >+ >+ Additionally, add WKViewSendGestureEvent() to avoid using WK2 internals >+ in the EFL API implementation and Add EFLGestureEvent which inherits >+ an APIObject to convert to WKGestureEventRef. >+ >+ * PlatformEfl.cmake: >+ * Shared/API/c/efl/WKBaseEfl.h: >+ * Shared/APIObject.h: >+ * Shared/efl/WebEventFactory.cpp: >+ * UIProcess/API/C/efl/WKAPICastEfl.h: >+ (WebKit): >+ (WebKit::toWebEventType): >+ (WebKit::toWebEventModifiers): >+ * UIProcess/API/C/efl/WKEventEfl.cpp: >+ (WKGestureEventCreate): >+ * UIProcess/API/C/efl/WKEventEfl.h: >+ * UIProcess/API/C/efl/WKView.cpp: >+ (WKViewSendGestureEvent): >+ * UIProcess/API/C/efl/WKView.h: >+ * UIProcess/API/efl/EwkView.cpp: >+ (EwkView::handleSingleTap): >+ * UIProcess/efl/EFLGestureEvent.cpp: Added. >+ (WebKit): >+ (WebKit::EFLGestureEvent::EFLGestureEvent): >+ * UIProcess/efl/EFLGestureEvent.h: Added. >+ (WebKit): >+ (EFLGestureEvent): >+ (WebKit::EFLGestureEvent::create): >+ (WebKit::EFLGestureEvent::eventType): >+ (WebKit::EFLGestureEvent::modifiers): >+ (WebKit::EFLGestureEvent::timestamp): >+ (WebKit::EFLGestureEvent::position): >+ (WebKit::EFLGestureEvent::screenPosition): >+ (WebKit::EFLGestureEvent::area): >+ (WebKit::EFLGestureEvent::deltaX): >+ (WebKit::EFLGestureEvent::deltaY): >+ (WebKit::EFLGestureEvent::type): >+ * UIProcess/efl/WebView.cpp: >+ (WebKit): >+ (WebKit::WebView::doneWithGestureEvent): >+ (WebKit::WebView::sendGestureEvent): >+ * UIProcess/efl/WebView.h: >+ (WebView): >+ * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: >+ (WebKit::NetscapePlugin::platformHandleMouseEvent): >+ > 2013-03-15 Eunmi Lee <eunmi15.lee@samsung.com> > > [EFL][WK2] Implement gesture recognizer. >diff --git a/Source/WebKit2/PlatformEfl.cmake b/Source/WebKit2/PlatformEfl.cmake >index 4478d2c9f283addb5bf2b3cb6bbdb6f4c11401a3..0908ef42d9da404ff1c4ceec7c23c4c8da8d2811 100644 >--- a/Source/WebKit2/PlatformEfl.cmake >+++ b/Source/WebKit2/PlatformEfl.cmake >@@ -90,6 +90,7 @@ list(APPEND WebKit2_SOURCES > UIProcess/efl/ContextHistoryClientEfl.cpp > UIProcess/efl/ContextMenuClientEfl.cpp > UIProcess/efl/DownloadManagerEfl.cpp >+ UIProcess/efl/EFLGestureEvent.cpp > UIProcess/efl/EFLTouchEvent.cpp > UIProcess/efl/EFLTouchPoint.cpp > UIProcess/efl/FindClientEfl.cpp >diff --git a/Source/WebKit2/Shared/API/c/efl/WKBaseEfl.h b/Source/WebKit2/Shared/API/c/efl/WKBaseEfl.h >index 9c07f8e0c8c862d8144fa5b9b3a0b9b3e8a978b0..e7dc56f15b81880562730838cbf717fdabea1af5 100644 >--- a/Source/WebKit2/Shared/API/c/efl/WKBaseEfl.h >+++ b/Source/WebKit2/Shared/API/c/efl/WKBaseEfl.h >@@ -29,5 +29,6 @@ typedef const struct OpaqueWKPopupItem* WKPopupItemRef; > typedef const struct OpaqueWKPopupMenuListener* WKPopupMenuListenerRef; > typedef const struct OpaqueWKTouchPoint* WKTouchPointRef; > typedef const struct OpaqueWKTouchEvent* WKTouchEventRef; >+typedef const struct OpaqueWKGestureEvent* WKGestureEventRef; > > #endif /* WKBaseEfl_h */ >diff --git a/Source/WebKit2/Shared/APIObject.h b/Source/WebKit2/Shared/APIObject.h >index a5750cfd517f2c5cfb3a2d2a171ea889b28bda2d..573923b65b64ce09e39f8b7b2bfe576d38793d45 100644 >--- a/Source/WebKit2/Shared/APIObject.h >+++ b/Source/WebKit2/Shared/APIObject.h >@@ -139,6 +139,9 @@ public: > TypeTouchPoint, > TypeTouchEvent, > #endif >+#if ENABLE(GESTURE_EVENTS) >+ TypeGestureEvent, >+#endif > #endif > }; > >diff --git a/Source/WebKit2/Shared/efl/WebEventFactory.cpp b/Source/WebKit2/Shared/efl/WebEventFactory.cpp >index 999dcb580b86c2d711c54dc104db60974f0f4639..e40e891d04a8f006844b6c1e0601d3cf7416ee77 100644 >--- a/Source/WebKit2/Shared/efl/WebEventFactory.cpp >+++ b/Source/WebKit2/Shared/efl/WebEventFactory.cpp >@@ -229,39 +229,6 @@ static inline WebPlatformTouchPoint::TouchPointState toWebPlatformTouchPointStat > } > } > >-static inline WebEvent::Type toWebEventType(WKEventType type) >-{ >- switch (type) { >- case kWKEventTypeTouchStart: >- return WebEvent::TouchStart; >- case kWKEventTypeTouchMove: >- return WebEvent::TouchMove; >- case kWKEventTypeTouchEnd: >- return WebEvent::TouchEnd; >- case kWKEventTypeTouchCancel: >- return WebEvent::TouchCancel; >- default: >- return WebEvent::NoType; >- } >- >-} >- >-static inline WebEvent::Modifiers toWebEventModifiers(unsigned modifiers) >-{ >- unsigned result = 0; >- >- if (modifiers & kWKEventModifiersShiftKey) >- result |= WebEvent::ShiftKey; >- if (modifiers & kWKEventModifiersControlKey) >- result |= WebEvent::ControlKey; >- if (modifiers & kWKEventModifiersAltKey) >- result |= WebEvent::AltKey; >- if (modifiers & kWKEventModifiersMetaKey) >- result |= WebEvent::MetaKey; >- >- return static_cast<WebEvent::Modifiers>(result); >-} >- > WebTouchEvent WebEventFactory::createWebTouchEvent(const EFLTouchEvent* event, const AffineTransform& toWebContent) > { > ImmutableArray* touchPointsArray = toImpl(event->touchPoints()); >diff --git a/Source/WebKit2/UIProcess/API/C/efl/WKAPICastEfl.h b/Source/WebKit2/UIProcess/API/C/efl/WKAPICastEfl.h >index ce5fe93b019dd947ad5d189d7f1127a137189b6a..e1bbe48725de1f00d92ef488ee8a8da7991634a2 100644 >--- a/Source/WebKit2/UIProcess/API/C/efl/WKAPICastEfl.h >+++ b/Source/WebKit2/UIProcess/API/C/efl/WKAPICastEfl.h >@@ -50,6 +50,12 @@ WK_ADD_API_MAPPING(WKTouchEventRef, EFLTouchEvent) > WK_ADD_API_MAPPING(WKTouchPointRef, EFLTouchPoint) > #endif > >+#if ENABLE(GESTURE_EVENTS) >+class EFLGestureEvent; >+ >+WK_ADD_API_MAPPING(WKGestureEventRef, EFLGestureEvent) >+#endif >+ > // Enum conversions. > inline WKPopupItemTextDirection toAPI(WebCore::TextDirection direction) > { >@@ -104,6 +110,44 @@ inline WKTouchPointState toAPI(WebPlatformTouchPoint::TouchPointState state) > } > #endif > >+inline WebEvent::Type toWebEventType(WKEventType type) >+{ >+ switch (type) { >+#if ENABLE(TOUCH_EVENTS) >+ case kWKEventTypeTouchStart: >+ return WebEvent::TouchStart; >+ case kWKEventTypeTouchMove: >+ return WebEvent::TouchMove; >+ case kWKEventTypeTouchEnd: >+ return WebEvent::TouchEnd; >+ case kWKEventTypeTouchCancel: >+ return WebEvent::TouchCancel; >+#endif >+#if ENABLE(GESTURE_EVENTS) >+ case kWKEventTypeGestureSingleTap: >+ return WebEvent::GestureSingleTap; >+#endif >+ default: >+ return WebEvent::NoType; >+ } >+} >+ >+inline WebEvent::Modifiers toWebEventModifiers(unsigned modifiers) >+{ >+ unsigned result = 0; >+ >+ if (modifiers & kWKEventModifiersShiftKey) >+ result |= WebEvent::ShiftKey; >+ if (modifiers & kWKEventModifiersControlKey) >+ result |= WebEvent::ControlKey; >+ if (modifiers & kWKEventModifiersAltKey) >+ result |= WebEvent::AltKey; >+ if (modifiers & kWKEventModifiersMetaKey) >+ result |= WebEvent::MetaKey; >+ >+ return static_cast<WebEvent::Modifiers>(result); >+} >+ > } > > #endif // WKAPICastEfl_h >diff --git a/Source/WebKit2/UIProcess/API/C/efl/WKEventEfl.cpp b/Source/WebKit2/UIProcess/API/C/efl/WKEventEfl.cpp >index 81fd879a5f5d03ae97eb39a13feeeb051adec1c6..c3bd8c5a5827cdccc593fff7e22c5474586d885c 100644 >--- a/Source/WebKit2/UIProcess/API/C/efl/WKEventEfl.cpp >+++ b/Source/WebKit2/UIProcess/API/C/efl/WKEventEfl.cpp >@@ -32,6 +32,10 @@ > #include "WKAPICast.h" > #include "WebEvent.h" > >+#if ENABLE(GESTURE_EVENTS) >+#include "EFLGestureEvent.h" >+#endif >+ > using namespace WebKit; > > WKTouchPointRef WKTouchPointCreate(int id, WKPoint position, WKPoint screenPosition, WKTouchPointState state, WKSize radius, float rotationAngle, float force) >@@ -172,3 +176,20 @@ float WKTouchPointGetForce(WKTouchPointRef point) > return 0; > #endif > } >+ >+WKGestureEventRef WKGestureEventCreate(WKEventType type, WKPoint position, WKPoint screenPosition, WKEventModifiers modifiers, double timestamp, WKSize area, float deltaX, float deltaY) >+{ >+#if ENABLE(GESTURE_EVENTS) >+ return toAPI(EFLGestureEvent::create(type, position, screenPosition, modifiers, timestamp, area, deltaX, deltaY).leakRef()); >+#else >+ UNUSED_PARAM(type); >+ UNUSED_PARAM(position); >+ UNUSED_PARAM(screenPosition); >+ UNUSED_PARAM(modifiers); >+ UNUSED_PARAM(timestamp); >+ UNUSED_PARAM(area); >+ UNUSED_PARAM(deltaX); >+ UNUSED_PARAM(deltaY); >+ return 0; >+#endif >+} >diff --git a/Source/WebKit2/UIProcess/API/C/efl/WKEventEfl.h b/Source/WebKit2/UIProcess/API/C/efl/WKEventEfl.h >index 18d0df0ed6c45d0fc5ab1ff9c0909039ccf21969..67952d90c5679c7467f06532040d1860e604ded2 100644 >--- a/Source/WebKit2/UIProcess/API/C/efl/WKEventEfl.h >+++ b/Source/WebKit2/UIProcess/API/C/efl/WKEventEfl.h >@@ -39,7 +39,8 @@ enum WKEventType { > kWKEventTypeTouchStart, > kWKEventTypeTouchMove, > kWKEventTypeTouchEnd, >- kWKEventTypeTouchCancel >+ kWKEventTypeTouchCancel, >+ kWKEventTypeGestureSingleTap > }; > typedef enum WKEventType WKEventType; > >@@ -68,6 +69,8 @@ WK_EXPORT WKSize WKTouchPointGetRadius(WKTouchPointRef); > WK_EXPORT float WKTouchPointGetRotationAngle(WKTouchPointRef); > WK_EXPORT float WKTouchPointGetForce(WKTouchPointRef); > >+WK_EXPORT WKGestureEventRef WKGestureEventCreate(WKEventType, WKPoint position, WKPoint screenPosition, WKEventModifiers, double timestamp, WKSize area, float deltaX, float deltaY); >+ > #ifdef __cplusplus > } > #endif >diff --git a/Source/WebKit2/UIProcess/API/C/efl/WKView.cpp b/Source/WebKit2/UIProcess/API/C/efl/WKView.cpp >index 398cc7f5b2e965aca4e374061ca3eba3c7b6f238..e9f51f6cb8b318788c814b2e1c856e0ca86e7ad4 100644 >--- a/Source/WebKit2/UIProcess/API/C/efl/WKView.cpp >+++ b/Source/WebKit2/UIProcess/API/C/efl/WKView.cpp >@@ -158,3 +158,13 @@ void WKViewSendTouchEvent(WKViewRef viewRef, WKTouchEventRef touchEventRef) > UNUSED_PARAM(touchEventRef); > #endif > } >+ >+void WKViewSendGestureEvent(WKViewRef viewRef, WKGestureEventRef gestureEventRef) >+{ >+#if ENABLE(GESTURE_EVENTS) >+ toImpl(viewRef)->sendGestureEvent(toImpl(gestureEventRef)); >+#else >+ UNUSED_PARAM(viewRef); >+ UNUSED_PARAM(gestureEventRef); >+#endif >+} >diff --git a/Source/WebKit2/UIProcess/API/C/efl/WKView.h b/Source/WebKit2/UIProcess/API/C/efl/WKView.h >index 2d1c0041fcd0e49f099925bc9d900dc8d8d7d67d..c49b38234eec7ab553d712d7758ff05e709d298b 100644 >--- a/Source/WebKit2/UIProcess/API/C/efl/WKView.h >+++ b/Source/WebKit2/UIProcess/API/C/efl/WKView.h >@@ -101,6 +101,7 @@ WK_EXPORT Evas_Object* WKViewGetEvasObject(WKViewRef); > WK_EXPORT WKImageRef WKViewCreateSnapshot(WKViewRef); > > WK_EXPORT void WKViewSendTouchEvent(WKViewRef, WKTouchEventRef); >+WK_EXPORT void WKViewSendGestureEvent(WKViewRef, WKGestureEventRef); > > #ifdef __cplusplus > } >diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp >index b17790eb8bf07a9de8179733902c24796c0a5d8d..eea3826f5bdc200ec109602fb9042ca7addbeb9b 100644 >--- a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp >+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp >@@ -1346,9 +1346,13 @@ PassRefPtr<cairo_surface_t> EwkView::takeSnapshot() > return snapshot.release(); > } > >-void EwkView::handleSingleTap(const IntPoint&) >+void EwkView::handleSingleTap(const IntPoint& position) > { >- notImplemented(); >+#if ENABLE(GESTURE_EVENTS) >+ WKViewSendGestureEvent(wkView(), adoptWK(WKGestureEventCreate(kWKEventTypeGestureSingleTap, toAPI(position), toAPI(transformToScreen().mapPoint(position)), 0, ecore_time_get(), WKSizeMake(0, 0), 0, 0)).get()); >+#else >+ UNUSED_PARAM(position); >+#endif > } > > void EwkView::handleDoubleTap(const IntPoint&) >diff --git a/Source/WebKit2/UIProcess/efl/EFLGestureEvent.cpp b/Source/WebKit2/UIProcess/efl/EFLGestureEvent.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..3c9e00bf43370f244f90fa1b84d12de08c3e4d68 >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/EFLGestureEvent.cpp >@@ -0,0 +1,47 @@ >+/* >+ * Copyright (C) 2013 Samsung Electronics. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#include "config.h" >+#include "EFLGestureEvent.h" >+ >+#if ENABLE(GESTURE_EVENTS) >+ >+namespace WebKit { >+ >+EFLGestureEvent::EFLGestureEvent(WKEventType type, WKPoint position, WKPoint screenPosition, WKEventModifiers modifiers, double timestamp, WKSize area, float deltaX, float deltaY) >+ : m_eventType(type) >+ , m_modifiers(modifiers) >+ , m_timestamp(timestamp) >+ , m_position(position) >+ , m_screenPosition(screenPosition) >+ , m_area(area) >+ , m_deltaX(deltaX) >+ , m_deltaY(deltaY) >+{ >+} >+ >+} // namespace WebKit >+ >+#endif // ENABLE(GESTURE_EVENTS) >diff --git a/Source/WebKit2/UIProcess/efl/EFLGestureEvent.h b/Source/WebKit2/UIProcess/efl/EFLGestureEvent.h >new file mode 100644 >index 0000000000000000000000000000000000000000..caa712486e4dbfcacfe69526f2b94564ee99378e >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/EFLGestureEvent.h >@@ -0,0 +1,74 @@ >+/* >+ * Copyright (C) 2013 Samsung Electronics. All rights reserved. >+ * >+ * Redistribution and use in source and binary forms, with or without >+ * modification, are permitted provided that the following conditions >+ * are met: >+ * 1. Redistributions of source code must retain the above copyright >+ * notice, this list of conditions and the following disclaimer. >+ * 2. Redistributions in binary form must reproduce the above copyright >+ * notice, this list of conditions and the following disclaimer in the >+ * documentation and/or other materials provided with the distribution. >+ * >+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' >+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, >+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS >+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR >+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >+ * THE POSSIBILITY OF SUCH DAMAGE. >+ */ >+ >+#ifndef EFLGestureEvent_h >+#define EFLGestureEvent_h >+ >+#if ENABLE(GESTURE_EVENTS) >+ >+#include "APIObject.h" >+#include "WKEventEfl.h" >+#include <wtf/PassRefPtr.h> >+ >+namespace WebKit { >+ >+class EFLGestureEvent : public APIObject { >+public: >+ static const APIObject::Type APIType = TypeGestureEvent; >+ >+ static PassRefPtr<EFLGestureEvent> create(WKEventType type, WKPoint position, WKPoint screenPosition, WKEventModifiers modifiers, double timestamp, WKSize area, float deltaX, float deltaY) >+ { >+ return adoptRef(new EFLGestureEvent(type, position, screenPosition, modifiers, timestamp, area, deltaX, deltaY)); >+ } >+ >+ WKEventType eventType() const { return m_eventType; } >+ WKEventModifiers modifiers() const { return m_modifiers; } >+ double timestamp() const { return m_timestamp; } >+ WKPoint position() const { return m_position; } >+ WKPoint screenPosition() const { return m_screenPosition; } >+ WKSize area() const { return m_area; } >+ float deltaX() const { return m_deltaX; } >+ float deltaY() const { return m_deltaY; } >+ >+private: >+ EFLGestureEvent(WKEventType, WKPoint position, WKPoint screenPosition, WKEventModifiers, double timestamp, WKSize area, float deltaX, float deltaY); >+ >+ virtual APIObject::Type type() const { return APIType; } >+ >+ WKEventType m_eventType; >+ WKEventModifiers m_modifiers; >+ double m_timestamp; >+ WKPoint m_position; >+ WKPoint m_screenPosition; >+ WKSize m_area; >+ float m_deltaX; >+ float m_deltaY; >+}; >+ >+} // namespace WebKit >+ >+#endif // ENABLE(GESTURE_EVENTS) >+ >+#endif /* EFLGestureEvent_h */ >diff --git a/Source/WebKit2/UIProcess/efl/WebView.cpp b/Source/WebKit2/UIProcess/efl/WebView.cpp >index dcb5ab676cc404a9548695f1cc94dc4fb9b42fc3..dde298b12bc82cd40181b2f519fe8debc32b28ae 100644 >--- a/Source/WebKit2/UIProcess/efl/WebView.cpp >+++ b/Source/WebKit2/UIProcess/efl/WebView.cpp >@@ -50,6 +50,10 @@ > #include "EFLTouchEvent.h" > #endif > >+#if ENABLE(GESTURE_EVENTS) >+#include "EFLGestureEvent.h" >+#endif >+ > using namespace EwkViewCallbacks; > using namespace WebCore; > >@@ -364,6 +368,13 @@ void WebView::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool) > notImplemented(); > } > >+#if ENABLE(GESTURE_EVENTS) >+void WebView::doneWithGestureEvent(const WebGestureEvent&, bool) >+{ >+ notImplemented(); >+} >+#endif >+ > #if ENABLE(TOUCH_EVENTS) > void WebView::doneWithTouchEvent(const NativeWebTouchEvent& event, bool wasEventHandled) > { >@@ -531,4 +542,13 @@ void WebView::sendTouchEvent(EFLTouchEvent* touchEvent) > } > #endif > >+#if ENABLE(GESTURE_EVENTS) >+void WebView::sendGestureEvent(const EFLGestureEvent* event) >+{ >+ ASSERT(event); >+ WebGestureEvent gesture(toWebEventType(event->eventType()), transformFromScene().mapPoint(toIntPoint(event->position())), toIntPoint(event->screenPosition()), toWebEventModifiers(event->modifiers()), event->timestamp(), toIntSize(event->area()), FloatPoint(event->deltaX(), event->deltaY())); >+ m_page->handleGestureEvent(gesture); >+} >+#endif >+ > } // namespace WebKit >diff --git a/Source/WebKit2/UIProcess/efl/WebView.h b/Source/WebKit2/UIProcess/efl/WebView.h >index 3e59563b079733d500d55b4e10344aee2d4e322a..151d3aea2e753d9852e31de77ea339dd3cabf166 100644 >--- a/Source/WebKit2/UIProcess/efl/WebView.h >+++ b/Source/WebKit2/UIProcess/efl/WebView.h >@@ -88,6 +88,10 @@ public: > void sendTouchEvent(EFLTouchEvent*); > #endif > >+#if ENABLE(GESTURE_EVENTS) >+ void sendGestureEvent(const EFLGestureEvent*); >+#endif >+ > // View client. > void initializeClient(const WKViewClient*); > >@@ -153,6 +157,9 @@ private: > void handleDownloadRequest(DownloadProxy*) OVERRIDE; > > void doneWithKeyEvent(const NativeWebKeyboardEvent&, bool) OVERRIDE; >+#if ENABLE(GESTURE_EVENTS) >+ void doneWithGestureEvent(const WebGestureEvent&, bool) OVERRIDE; >+#endif > #if ENABLE(TOUCH_EVENTS) > void doneWithTouchEvent(const NativeWebTouchEvent&, bool wasEventHandled) OVERRIDE; > #endif >diff --git a/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp b/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp >index 6e07767d1d1cdf2927e6a4823202d8bf4d6215e0..a5ba98b009d64735aac97db20372981d63b1bb5f 100644 >--- a/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp >+++ b/Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp >@@ -533,6 +533,7 @@ bool NetscapePlugin::platformHandleMouseEvent(const WebMouseEvent& event) > #if ENABLE(GESTURE_EVENTS) > case WebEvent::GestureScrollBegin: > case WebEvent::GestureScrollEnd: >+ case WebEvent::GestureSingleTap: > #endif > #if ENABLE(TOUCH_EVENTS) > case WebEvent::TouchStart: >diff --git a/Source/cmake/OptionsEfl.cmake b/Source/cmake/OptionsEfl.cmake >index c47f9386932ddce3245db0b7e1f41cc8cbebbdc8..dd05cf7cbd5fe3ff97e866d31b53609318c4b04e 100644 >--- a/Source/cmake/OptionsEfl.cmake >+++ b/Source/cmake/OptionsEfl.cmake >@@ -262,3 +262,7 @@ if (ENABLE_INDEXED_DATABASE) > set(WTF_USE_LEVELDB 1) > add_definitions(-DWTF_USE_LEVELDB=1) > endif () >+ >+if (ENABLE_WEBKIT2 AND WTF_USE_TILED_BACKING_STORE) >+ add_definitions(-DENABLE_GESTURE_EVENTS=1) >+endif () >diff --git a/ChangeLog b/ChangeLog >index 3167866f173c88dadcb4859116b86327f28c9864..88712864dc0ff60d7e425027c553273f7480b057 100644 >--- a/ChangeLog >+++ b/ChangeLog >@@ -1,3 +1,15 @@ >+2013-03-18 Eunmi Lee <eunmi15.lee@samsung.com> >+ >+ [EFL][WK2] Process single tap using WebEvent::GestureSingleTap. >+ https://bugs.webkit.org/show_bug.cgi?id=106864 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Enable GESTURE_EVENTS to use WebEvent::GestureSingleTap when WEBKIT2 >+ and TILED_BACKING_STORE are enabled. >+ >+ * Source/cmake/OptionsEfl.cmake: >+ > 2013-03-13 Ryosuke Niwa <rniwa@webkit.org> > > Threaded HTML Parser is missing feature define flags in all but Chromium port's build files
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 106864
:
182692
|
182724
|
191411
|
191646
|
193495
|
193775
|
206055
|
207625
|
208250
|
214552