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-102643-20130114201301.patch (text/plain), 36.98 KB, created by
Eunmi Lee
on 2013-01-14 03:16:02 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Eunmi Lee
Created:
2013-01-14 03:16:02 PST
Size:
36.98 KB
patch
obsolete
>Subversion Revision: 139587 >diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog >index cd9eaa30e615b6d5f91e8cd4a57bf222d2cf9819..74395d1ede33b76834876b887ce96f06e180a0df 100644 >--- a/Source/WebKit2/ChangeLog >+++ b/Source/WebKit2/ChangeLog >@@ -1,3 +1,83 @@ >+2013-01-14 Eunmi Lee <eunmi15.lee@samsung.com> >+ >+ [EFL][WK2] Implement gesture recognizer. >+ https://bugs.webkit.org/show_bug.cgi?id=102643 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Recognize tap, pan and pinch gestures using TouchEvents. >+ The tap gesture is separated into single tap, double tap and >+ 'tap and hold'. >+ >+ * PlatformEfl.cmake: >+ * UIProcess/API/efl/EwkViewImpl.cpp: >+ (EwkViewImpl::EwkViewImpl): >+ * UIProcess/API/efl/EwkViewImpl.h: >+ (WebKit): >+ (EwkViewImpl): >+ (EwkViewImpl::gestureRecognizer): >+ * UIProcess/efl/GestureHandler.cpp: Added. >+ (WebKit): >+ (WebKit::GestureHandler::GestureHandler): >+ * UIProcess/efl/GestureHandler.h: Added. >+ (WebCore): >+ (WebKit): >+ (GestureHandler): >+ (WebKit::GestureHandler::~GestureHandler): >+ * UIProcess/efl/GestureRecognizer.cpp: Added. >+ (WebKit): >+ (WebKit::GestureRecognizer::GestureRecognizer): >+ (WebKit::GestureRecognizer::processTouchEvent): >+ (WebKit::GestureRecognizer::start): >+ (WebKit::GestureRecognizer::update): >+ (WebKit::GestureRecognizer::end): >+ (WebKit::GestureRecognizer::cancel): >+ * UIProcess/efl/GestureRecognizer.h: Added. >+ (WebCore): >+ (WebKit): >+ (GestureRecognizer): >+ (WebKit::GestureRecognizer::create): >+ (WebKit::GestureRecognizer::~GestureRecognizer): >+ * UIProcess/efl/PageClientBase.cpp: >+ (WebKit::PageClientBase::doneWithTouchEvent): >+ * UIProcess/efl/PanGestureHandler.cpp: Added. >+ (WebKit): >+ (WebKit::PanGestureHandler::PanGestureHandler): >+ (WebKit::PanGestureHandler::start): >+ (WebKit::PanGestureHandler::update): >+ (WebKit::PanGestureHandler::end): >+ (WebKit::PanGestureHandler::cancel): >+ * UIProcess/efl/PanGestureHandler.h: Added. >+ (WebCore): >+ (WebKit): >+ (PanGestureHandler): >+ * UIProcess/efl/PinchGestureHandler.cpp: Added. >+ (WebKit): >+ (WebKit::PinchGestureHandler::PinchGestureHandler): >+ (WebKit::PinchGestureHandler::start): >+ (WebKit::PinchGestureHandler::update): >+ (WebKit::PinchGestureHandler::end): >+ (WebKit::PinchGestureHandler::cancel): >+ * UIProcess/efl/PinchGestureHandler.h: Added. >+ (WebCore): >+ (WebKit): >+ (PinchGestureHandler): >+ * UIProcess/efl/TapGestureHandler.cpp: Added. >+ (WebKit): >+ (WebKit::TapGestureHandler::TapGestureHandler): >+ (WebKit::TapGestureHandler::start): >+ (WebKit::TapGestureHandler::update): >+ (WebKit::TapGestureHandler::end): >+ (WebKit::TapGestureHandler::cancel): >+ (WebKit::TapGestureHandler::processSingleTap): >+ (WebKit::TapGestureHandler::processDoubleTap): >+ (WebKit::TapGestureHandler::processTapAndHold): >+ (WebKit::TapGestureHandler::doubleTapTimerCallback): >+ (WebKit::TapGestureHandler::tapAndHoldTimerCallback): >+ * UIProcess/efl/TapGestureHandler.h: Added. >+ (WebKit): >+ (TapGestureHandler): >+ > 2013-01-11 Filip Pizlo <fpizlo@apple.com> > > JITThunks should not compile only because of luck >diff --git a/Source/WebKit2/PlatformEfl.cmake b/Source/WebKit2/PlatformEfl.cmake >index c57c28eaf2fec26b1ea7419960d8f9364bb4e921..ec2598a2e562ffda3f0c9ba8abcec94ae6f8d93d 100644 >--- a/Source/WebKit2/PlatformEfl.cmake >+++ b/Source/WebKit2/PlatformEfl.cmake >@@ -84,6 +84,8 @@ list(APPEND WebKit2_SOURCES > UIProcess/efl/DownloadManagerEfl.cpp > UIProcess/efl/FindClientEfl.cpp > UIProcess/efl/FormClientEfl.cpp >+ UIProcess/efl/GestureHandler.cpp >+ UIProcess/efl/GestureRecognizer.cpp > UIProcess/efl/InputMethodContextEfl.cpp > UIProcess/efl/NetworkInfoProvider.cpp > UIProcess/efl/PageClientBase.cpp >@@ -93,8 +95,11 @@ list(APPEND WebKit2_SOURCES > UIProcess/efl/PagePolicyClientEfl.cpp > UIProcess/efl/PageUIClientEfl.cpp > UIProcess/efl/PageViewportControllerClientEfl.cpp >+ UIProcess/efl/PanGestureHandler.cpp >+ UIProcess/efl/PinchGestureHandler.cpp > UIProcess/efl/RequestManagerClientEfl.cpp > UIProcess/efl/ResourceLoadClientEfl.cpp >+ UIProcess/efl/TapGestureHandler.cpp > UIProcess/efl/TextCheckerEfl.cpp > UIProcess/efl/VibrationClientEfl.cpp > UIProcess/efl/WebContextEfl.cpp >diff --git a/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp b/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp >index 0ebe5f9ab63cf7027805abdfb2abcbdf4906b3c2..5a06b9dc352789fd6b16a53f351011358b4458e7 100644 >--- a/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp >+++ b/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.cpp >@@ -78,6 +78,10 @@ > #include <Evas_GL.h> > #endif > >+#if ENABLE(TOUCH_EVENTS) && USE(TILED_BACKING_STORE) >+#include "GestureRecognizer.h" >+#endif >+ > using namespace EwkViewCallbacks; > using namespace WebCore; > using namespace WebKit; >@@ -138,6 +142,9 @@ EwkViewImpl::EwkViewImpl(Evas_Object* view, PassRefPtr<EwkContext> context, Pass > , m_mouseEventsEnabled(false) > #if ENABLE(TOUCH_EVENTS) > , m_touchEventsEnabled(false) >+#if USE(TILED_BACKING_STORE) >+ , m_gestureRecognizer(GestureRecognizer::create(this)) >+#endif > #endif > , m_displayTimer(this, &EwkViewImpl::displayTimerFired) > , m_inputMethodContext(InputMethodContextEfl::create(this, smartData()->base.evas)) >diff --git a/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h b/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h >index bcd1c5dfd318c42a8e97d871e203feded5a950eb..1f69ba8601816f7d0883f50eca4dd5469151e312 100644 >--- a/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h >+++ b/Source/WebKit2/UIProcess/API/efl/EwkViewImpl.h >@@ -73,6 +73,10 @@ class VibrationClientEfl; > #if USE(COORDINATED_GRAPHICS) > class LayerTreeRenderer; > #endif >+ >+#if ENABLE(TOUCH_EVENTS) && USE(TILED_BACKING_STORE) >+class GestureRecognizer; >+#endif > } > > namespace WebCore { >@@ -142,6 +146,9 @@ public: > #if ENABLE(TOUCH_EVENTS) > bool touchEventsEnabled() const { return m_touchEventsEnabled; } > void setTouchEventsEnabled(bool enabled); >+#if USE(TILED_BACKING_STORE) >+ WebKit::GestureRecognizer* gestureRecognizer() { return m_gestureRecognizer.get(); } >+#endif > #endif > > void setCursor(const WebCore::Cursor& cursor); >@@ -277,6 +284,9 @@ private: > bool m_mouseEventsEnabled; > #if ENABLE(TOUCH_EVENTS) > bool m_touchEventsEnabled; >+#if USE(TILED_BACKING_STORE) >+ OwnPtr<WebKit::GestureRecognizer> m_gestureRecognizer; >+#endif > #endif > WebCore::Timer<EwkViewImpl> m_displayTimer; > OwnPtr<EwkContextMenu> m_contextMenu; >diff --git a/Source/WebKit2/UIProcess/efl/GestureHandler.cpp b/Source/WebKit2/UIProcess/efl/GestureHandler.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..ee6bc8868ecf05811eec7d93733854958ea88393 >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/GestureHandler.cpp >@@ -0,0 +1,41 @@ >+/* >+ * 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 "GestureHandler.h" >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include "EwkViewImpl.h" >+ >+namespace WebKit { >+ >+GestureHandler::GestureHandler(EwkViewImpl* viewImpl) >+ : m_viewImpl(viewImpl) >+{ >+} >+ >+} // namespace WebKit >+#endif // USE(TILED_BACKING_STORE) >diff --git a/Source/WebKit2/UIProcess/efl/GestureHandler.h b/Source/WebKit2/UIProcess/efl/GestureHandler.h >new file mode 100644 >index 0000000000000000000000000000000000000000..49611a3861264fc54725877d91662b4d5bd25fcd >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/GestureHandler.h >@@ -0,0 +1,59 @@ >+/* >+ * 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 GestureHandler_h >+#define GestureHandler_h >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include <wtf/Vector.h> >+ >+namespace WebCore { >+class IntPoint; >+} >+ >+class EwkViewImpl; >+ >+namespace WebKit { >+ >+class GestureHandler { >+public: >+ virtual ~GestureHandler() { } >+ >+ virtual void start(const Vector<WebCore::IntPoint>&) = 0; >+ virtual void update(const Vector<WebCore::IntPoint>&) = 0; >+ virtual void end() = 0; >+ virtual void cancel() = 0; >+ >+protected: >+ GestureHandler(EwkViewImpl*); >+ EwkViewImpl* m_viewImpl; >+}; >+ >+} // namespace WebKit >+ >+#endif // USE(TILED_BACKING_STORE) >+ >+#endif // GestureHandler_h >diff --git a/Source/WebKit2/UIProcess/efl/GestureRecognizer.cpp b/Source/WebKit2/UIProcess/efl/GestureRecognizer.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..7e4f9a50e4f7b53f0e232a40dfed42d92a2b3a24 >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/GestureRecognizer.cpp >@@ -0,0 +1,129 @@ >+/* >+ * 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 "GestureRecognizer.h" >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include "EwkViewImpl.h" >+#include "NativeWebTouchEvent.h" >+ >+namespace WebKit { >+ >+GestureRecognizer::GestureRecognizer(EwkViewImpl* viewImpl) >+ : m_currentGesture(NoGesture) >+ , m_tapGestureHandler(viewImpl) >+ , m_panGestureHandler(viewImpl) >+ , m_pinchGestureHandler(viewImpl) >+{ >+} >+ >+void GestureRecognizer::processTouchEvent(const NativeWebTouchEvent& event, bool wasEventHandled) >+{ >+ if (wasEventHandled || event.type() == WebEvent::TouchCancel) { >+ cancel(); >+ return; >+ } >+ >+ const Vector<WebPlatformTouchPoint>& touchPoints = event.touchPoints(); >+ int numberOfTouchPoints = touchPoints.size(); >+ >+ // We don't have to process any gesture if no gesture is recognized and current touch event is >+ // not the start of touch. >+ if (m_currentGesture == NoGesture && !(event.type() == WebEvent::TouchStart && numberOfTouchPoints == 1)) >+ return; >+ >+ // Update current points. >+ m_currentPoints.clear(); >+ for (int i = 0; i < numberOfTouchPoints; ++i) >+ if (touchPoints[i].state() != WebPlatformTouchPoint::TouchReleased >+ && touchPoints[i].state() != WebPlatformTouchPoint::TouchCancelled) >+ m_currentPoints.append(touchPoints[i].position()); >+ >+ if (event.type() == WebEvent::TouchStart) { >+ if (numberOfTouchPoints == 1) >+ start(TapGesture); >+ else if (numberOfTouchPoints == 2) >+ start(PinchGesture); >+ } else if (event.type() == WebEvent::TouchMove) { >+ if (numberOfTouchPoints == 1 && m_currentGesture != PanGesture) >+ start(PanGesture); >+ else >+ update(); >+ } else if (event.type() == WebEvent::TouchEnd) >+ end(); >+} >+ >+void GestureRecognizer::start(Gesture gesture) >+{ >+ if (m_currentGesture == gesture) >+ return; >+ >+ cancel(); >+ >+ m_currentGesture = gesture; >+ if (m_currentGesture == TapGesture) >+ m_tapGestureHandler.start(m_currentPoints); >+ else if (m_currentGesture == PanGesture) >+ m_panGestureHandler.start(m_currentPoints); >+ else if (m_currentGesture == PinchGesture) >+ m_pinchGestureHandler.start(m_currentPoints); >+} >+ >+void GestureRecognizer::update() >+{ >+ if (m_currentGesture == PanGesture) >+ m_panGestureHandler.update(m_currentPoints); >+ else if (m_currentGesture == PinchGesture) >+ m_pinchGestureHandler.update(m_currentPoints); >+} >+ >+void GestureRecognizer::end() >+{ >+ if (m_currentGesture == TapGesture) >+ m_tapGestureHandler.end(); >+ else if (m_currentGesture == PanGesture) >+ m_panGestureHandler.end(); >+ else if (m_currentGesture == PinchGesture) >+ m_pinchGestureHandler.end(); >+ >+ m_currentGesture = NoGesture; >+} >+ >+void GestureRecognizer::cancel() >+{ >+ if (m_currentGesture == TapGesture) >+ m_tapGestureHandler.cancel(); >+ else if (m_currentGesture == PanGesture) >+ m_panGestureHandler.cancel(); >+ else if (m_currentGesture == PinchGesture) >+ m_pinchGestureHandler.cancel(); >+ >+ m_currentGesture = NoGesture; >+} >+ >+} // namespace WebKit >+#endif // USE(TILED_BACKING_STORE) >diff --git a/Source/WebKit2/UIProcess/efl/GestureRecognizer.h b/Source/WebKit2/UIProcess/efl/GestureRecognizer.h >new file mode 100644 >index 0000000000000000000000000000000000000000..cbf9954456ad0683d6891c31d66fd7da3cb4a220 >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/GestureRecognizer.h >@@ -0,0 +1,84 @@ >+/* >+ * 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 GestureRecognizer_h >+#define GestureRecognizer_h >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include "PanGestureHandler.h" >+#include "PinchGestureHandler.h" >+#include "TapGestureHandler.h" >+#include <wtf/PassOwnPtr.h> >+#include <wtf/Vector.h> >+ >+namespace WebCore { >+class IntPoint; >+} >+ >+class EwkViewImpl; >+ >+namespace WebKit { >+ >+class NativeWebTouchEvent; >+ >+class GestureRecognizer { >+public: >+ static PassOwnPtr<GestureRecognizer> create(EwkViewImpl* viewImpl) >+ { >+ return adoptPtr(new GestureRecognizer(viewImpl)); >+ } >+ >+ virtual ~GestureRecognizer() { } >+ >+ void processTouchEvent(const NativeWebTouchEvent&, bool wasEventHandled); >+ >+private: >+ explicit GestureRecognizer(EwkViewImpl*); >+ >+ typedef enum { >+ NoGesture, >+ TapGesture, >+ PanGesture, >+ PinchGesture >+ } Gesture; >+ >+ void start(Gesture); >+ void update(); >+ void end(); >+ void cancel(); >+ >+ Gesture m_currentGesture; >+ Vector<WebCore::IntPoint> m_currentPoints; >+ TapGestureHandler m_tapGestureHandler; >+ PanGestureHandler m_panGestureHandler; >+ PinchGestureHandler m_pinchGestureHandler; >+}; >+ >+} // namespace WebKit >+ >+#endif // USE(TILED_BACKING_STORE) >+ >+#endif // GestureRecognizer_h >diff --git a/Source/WebKit2/UIProcess/efl/PageClientBase.cpp b/Source/WebKit2/UIProcess/efl/PageClientBase.cpp >index 273d0646f9556293fcee1edf1d467f6b956dd6b8..1df03117fbf205b6d4e361506d3f99c470f8c309 100644 >--- a/Source/WebKit2/UIProcess/efl/PageClientBase.cpp >+++ b/Source/WebKit2/UIProcess/efl/PageClientBase.cpp >@@ -47,6 +47,10 @@ > #include "ewk_private.h" > #include "ewk_view.h" > >+#if ENABLE(TOUCH_EVENTS) && USE(TILED_BACKING_STORE) >+#include "GestureRecognizer.h" >+#endif >+ > using namespace WebCore; > using namespace EwkViewCallbacks; > >@@ -206,9 +210,15 @@ void PageClientBase::doneWithKeyEvent(const NativeWebKeyboardEvent&, bool) > } > > #if ENABLE(TOUCH_EVENTS) >-void PageClientBase::doneWithTouchEvent(const NativeWebTouchEvent&, bool /*wasEventHandled*/) >+void PageClientBase::doneWithTouchEvent(const NativeWebTouchEvent& event, bool wasEventHandled) > { >+#if USE(TILED_BACKING_STORE) >+ m_viewImpl->gestureRecognizer()->processTouchEvent(event, wasEventHandled); >+#else >+ UNUSED_PARAM(event); >+ UNUSED_PARAM(wasEventHandled); > notImplemented(); >+#endif > } > #endif > >diff --git a/Source/WebKit2/UIProcess/efl/PanGestureHandler.cpp b/Source/WebKit2/UIProcess/efl/PanGestureHandler.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..066843a6cc37b2959634409580426637745c04ce >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/PanGestureHandler.cpp >@@ -0,0 +1,75 @@ >+/* >+ * 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 "PanGestureHandler.h" >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include "EwkViewImpl.h" >+#include <WebCore/IntPoint.h> >+#include <WebCore/NotImplemented.h> >+ >+using namespace WebCore; >+ >+namespace WebKit { >+ >+PanGestureHandler::PanGestureHandler(EwkViewImpl* viewImpl) >+ : GestureHandler(viewImpl) >+{ >+} >+ >+void PanGestureHandler::start(const Vector<IntPoint>& points) >+{ >+ if (points.size() < 1) { >+ cancel(); >+ return; >+ } >+ >+ notImplemented(); >+} >+ >+void PanGestureHandler::update(const Vector<IntPoint>& points) >+{ >+ if (points.size() < 1) { >+ cancel(); >+ return; >+ } >+ >+ notImplemented(); >+} >+ >+void PanGestureHandler::end() >+{ >+ notImplemented(); >+} >+ >+void PanGestureHandler::cancel() >+{ >+ notImplemented(); >+} >+ >+} // namespace WebKit >+#endif // USE(TILED_BACKING_STORE) >diff --git a/Source/WebKit2/UIProcess/efl/PanGestureHandler.h b/Source/WebKit2/UIProcess/efl/PanGestureHandler.h >new file mode 100644 >index 0000000000000000000000000000000000000000..91b8ec502aaf5ebaa53c04162c81f1653bb2bd68 >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/PanGestureHandler.h >@@ -0,0 +1,53 @@ >+/* >+ * 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 PanGestureHandler_h >+#define PanGestureHandler_h >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include "GestureHandler.h" >+ >+namespace WebCore { >+class IntPoint; >+} >+ >+namespace WebKit { >+ >+class PanGestureHandler : private GestureHandler { >+public: >+ PanGestureHandler(EwkViewImpl*); >+ >+ void start(const Vector<WebCore::IntPoint>&); >+ void update(const Vector<WebCore::IntPoint>&); >+ void end(); >+ void cancel(); >+}; >+ >+} // namespace WebKit >+ >+#endif // USE(TILED_BACKING_STORE) >+ >+#endif // PanGestureHandler_h >diff --git a/Source/WebKit2/UIProcess/efl/PinchGestureHandler.cpp b/Source/WebKit2/UIProcess/efl/PinchGestureHandler.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..8b76e90e35a8ff2e28f2592589765f7501acfb90 >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/PinchGestureHandler.cpp >@@ -0,0 +1,75 @@ >+/* >+ * 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 "PinchGestureHandler.h" >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include "EwkViewImpl.h" >+#include <WebCore/IntPoint.h> >+#include <WebCore/NotImplemented.h> >+ >+using namespace WebCore; >+ >+namespace WebKit { >+ >+PinchGestureHandler::PinchGestureHandler(EwkViewImpl* viewImpl) >+ : GestureHandler(viewImpl) >+{ >+} >+ >+void PinchGestureHandler::start(const Vector<IntPoint>& points) >+{ >+ if (points.size() < 2) { >+ cancel(); >+ return; >+ } >+ >+ notImplemented(); >+} >+ >+void PinchGestureHandler::update(const Vector<IntPoint>& points) >+{ >+ if (points.size() < 2) { >+ cancel(); >+ return; >+ } >+ >+ notImplemented(); >+} >+ >+void PinchGestureHandler::end() >+{ >+ notImplemented(); >+} >+ >+void PinchGestureHandler::cancel() >+{ >+ notImplemented(); >+} >+ >+} // namespace WebKit >+#endif // USE(TILED_BACKING_STORE) >diff --git a/Source/WebKit2/UIProcess/efl/PinchGestureHandler.h b/Source/WebKit2/UIProcess/efl/PinchGestureHandler.h >new file mode 100644 >index 0000000000000000000000000000000000000000..1c9acc59e95911ba55bd5496d1f60defea59e058 >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/PinchGestureHandler.h >@@ -0,0 +1,53 @@ >+/* >+ * 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 PinchGestureHandler_h >+#define PinchGestureHandler_h >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include "GestureHandler.h" >+ >+namespace WebCore { >+class IntPoint; >+} >+ >+namespace WebKit { >+ >+class PinchGestureHandler : private GestureHandler { >+public: >+ PinchGestureHandler(EwkViewImpl*); >+ >+ void start(const Vector<WebCore::IntPoint>&); >+ void update(const Vector<WebCore::IntPoint>&); >+ void end(); >+ void cancel(); >+}; >+ >+} // namespace WebKit >+ >+#endif // USE(TILED_BACKING_STORE) >+ >+#endif // PinchGestureHandler_h >diff --git a/Source/WebKit2/UIProcess/efl/TapGestureHandler.cpp b/Source/WebKit2/UIProcess/efl/TapGestureHandler.cpp >new file mode 100644 >index 0000000000000000000000000000000000000000..35f2d7961b0393e55214415e06da3c6d776c5e38 >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/TapGestureHandler.cpp >@@ -0,0 +1,155 @@ >+/* >+ * 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 "TapGestureHandler.h" >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include <WebCore/NotImplemented.h> >+ >+using namespace WebCore; >+ >+namespace WebKit { >+ >+const double TapGestureHandler::s_doubleTapTimeout = 0.4; >+const double TapGestureHandler::s_tapAndHoldTimeout = 1.0; >+ >+TapGestureHandler::TapGestureHandler(EwkViewImpl* viewImpl) >+ : GestureHandler(viewImpl) >+ , m_state(NoState) >+ , m_tapAndHoldTimer(0) >+ , m_doubleTapTimer(0) >+ , m_firstPressedPoint() >+ , m_secondPressedPoint() >+{ >+} >+ >+void TapGestureHandler::start(const Vector<IntPoint>& points) >+{ >+ if (points.size() < 1) { >+ cancel(); >+ return; >+ } >+ >+ // If doubleTapTimer does not exist, start to process tap gesture. >+ if (!m_doubleTapTimer) { >+ m_state = NoState; >+ m_firstPressedPoint = points[0]; >+ >+ ASSERT(!m_tapAndHoldTimer); >+ m_tapAndHoldTimer = ecore_timer_add(s_tapAndHoldTimeout, tapAndHoldTimerCallback, this); >+ m_doubleTapTimer = ecore_timer_add(s_doubleTapTimeout, doubleTapTimerCallback, this); >+ } else { >+ m_secondPressedPoint = points[0]; >+ if (m_firstPressedPoint.distanceSquaredToPoint(m_secondPressedPoint) > s_doubleTapDistanceSquareThreshold) >+ m_state = NoState; >+ >+ ecore_timer_del(m_doubleTapTimer); >+ m_doubleTapTimer = 0; >+ } >+} >+ >+void TapGestureHandler::update(const Vector<IntPoint>& points) >+{ >+ if (points.size() < 1) { >+ cancel(); >+ return; >+ } >+} >+ >+void TapGestureHandler::end() >+{ >+ if (m_tapAndHoldTimer) { >+ ecore_timer_del(m_tapAndHoldTimer); >+ m_tapAndHoldTimer = 0; >+ } >+ >+ if (m_state == SingleTapState) >+ processSingleTap(); >+ else if (m_state == DoubleTapState) >+ processDoubleTap(); >+ // If currentState is NoState and doubleTapTimer is not expired, prepare to process double tap. >+ else if (m_doubleTapTimer) >+ m_state = DoubleTapState; >+} >+ >+void TapGestureHandler::cancel() >+{ >+ if (m_doubleTapTimer) { >+ ecore_timer_del(m_doubleTapTimer); >+ m_doubleTapTimer = 0; >+ } >+ >+ if (m_tapAndHoldTimer) { >+ ecore_timer_del(m_tapAndHoldTimer); >+ m_tapAndHoldTimer = 0; >+ } >+ >+ m_state = NoState; >+} >+ >+void TapGestureHandler::processSingleTap() >+{ >+ notImplemented(); >+} >+ >+void TapGestureHandler::processDoubleTap() >+{ >+ notImplemented(); >+} >+ >+void TapGestureHandler::processTapAndHold() >+{ >+ notImplemented(); >+} >+ >+Eina_Bool TapGestureHandler::doubleTapTimerCallback(void* data) >+{ >+ TapGestureHandler* tapGestureHandler = static_cast<TapGestureHandler*>(data); >+ tapGestureHandler->m_doubleTapTimer = 0; >+ >+ // If doubleTapTimer is fired we should not process double tap, >+ // so process single tap here or set state to SingleTapState for processing single tap in the end(). >+ if (tapGestureHandler->m_state == DoubleTapState) >+ tapGestureHandler->processSingleTap(); >+ else >+ tapGestureHandler->m_state = SingleTapState; >+ >+ return ECORE_CALLBACK_CANCEL; >+} >+ >+Eina_Bool TapGestureHandler::tapAndHoldTimerCallback(void* data) >+{ >+ TapGestureHandler* tapGestureHandler = static_cast<TapGestureHandler*>(data); >+ tapGestureHandler->m_tapAndHoldTimer = 0; >+ tapGestureHandler->m_state = NoState; >+ tapGestureHandler->processTapAndHold(); >+ >+ return ECORE_CALLBACK_CANCEL; >+} >+ >+} // namespace WebKit >+#endif // USE(TILED_BACKING_STORE) >diff --git a/Source/WebKit2/UIProcess/efl/TapGestureHandler.h b/Source/WebKit2/UIProcess/efl/TapGestureHandler.h >new file mode 100644 >index 0000000000000000000000000000000000000000..40577f52d6fecc40459638360ebf9af447ebc193 >--- /dev/null >+++ b/Source/WebKit2/UIProcess/efl/TapGestureHandler.h >@@ -0,0 +1,75 @@ >+/* >+ * 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 TapGestureHandler_h >+#define TapGestureHandler_h >+ >+#if USE(TILED_BACKING_STORE) >+ >+#include "GestureHandler.h" >+#include <Ecore.h> >+#include <Eina.h> >+#include <WebCore/IntPoint.h> >+ >+namespace WebKit { >+ >+class TapGestureHandler : private GestureHandler { >+public: >+ TapGestureHandler(EwkViewImpl*); >+ >+ void start(const Vector<WebCore::IntPoint>&); >+ void update(const Vector<WebCore::IntPoint>&); >+ void end(); >+ void cancel(); >+ >+private: >+ static Eina_Bool doubleTapTimerCallback(void*); >+ static Eina_Bool tapAndHoldTimerCallback(void*); >+ >+ static const double s_doubleTapTimeout; >+ static const double s_tapAndHoldTimeout; >+ static const int s_doubleTapDistanceSquareThreshold = 10000; >+ >+ void processSingleTap(); >+ void processDoubleTap(); >+ void processTapAndHold(); >+ >+ enum { >+ NoState, >+ SingleTapState, >+ DoubleTapState >+ } m_state; >+ >+ Ecore_Timer* m_tapAndHoldTimer; >+ Ecore_Timer* m_doubleTapTimer; >+ WebCore::IntPoint m_firstPressedPoint; >+ WebCore::IntPoint m_secondPressedPoint; >+}; >+ >+} // namespace WebKit >+ >+#endif // USE(TILED_BACKING_STORE) >+ >+#endif // TapGestureHandler_h
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 102643
:
175595
|
175740
|
177938
|
182520
|
182537
|
182722
|
183716
|
184174
|
189001
|
191401
|
193276
|
193753
|
206052
|
207367
|
207443
|
207509
|
207547
|
207619
|
207650
|
207683
|
207714
|
207717
|
207722
|
207732
|
207909
|
208000