Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Unified Diff: third_party/WebKit/Source/core/input/GestureManager.h

Issue 2137113002: Create GestureManager class and move related logic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make GestureManager friend of EventHandler Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/input/GestureManager.h
diff --git a/third_party/WebKit/Source/core/input/GestureManager.h b/third_party/WebKit/Source/core/input/GestureManager.h
new file mode 100644
index 0000000000000000000000000000000000000000..a3829b93c566e2970d2ab2e52b10087fbeb33135
--- /dev/null
+++ b/third_party/WebKit/Source/core/input/GestureManager.h
@@ -0,0 +1,75 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GestureManager_h
+#define GestureManager_h
+
+#include "core/CoreExport.h"
+#include "core/frame/LocalFrame.h"
+#include "core/layout/HitTestRequest.h"
+#include "core/page/EventWithHitTestResults.h"
+#include "platform/PlatformEvent.h"
+#include "public/platform/WebInputEventResult.h"
+
+namespace blink {
+
+class ScrollManager;
+class SelectionController;
+class PointerEventManager;
+
+// This class takes care of gestures and delegating the action based on the
+// gesture to the responsible class.
+class CORE_EXPORT GestureManager {
+ WTF_MAKE_NONCOPYABLE(GestureManager);
+ DISALLOW_NEW();
+public:
+ explicit GestureManager(LocalFrame*, ScrollManager*, PointerEventManager*,
dtapuska 2016/07/13 12:19:28 no need for explicit. Explicit is only used when y
Navid Zolghadr 2016/07/13 16:28:14 It was carried over from a copy paste. Removed.
+ SelectionController*);
+ ~GestureManager();
+ DECLARE_TRACE();
+
+ void clear();
+
+ HitTestRequest::HitTestRequestType getHitTypeForGestureType(PlatformEvent::EventType);
+ WebInputEventResult handleGestureEventInFrame(const GestureEventWithHitTestResults&);
+
+ // TODO(nzolghadr): This can probably be hidden and the related logic
+ // be moved to this class (see crrev.com/112023010). Since that might cause
+ // regression it's better to move that logic in another change.
+ double getLastShowPressTimestamp();
dtapuska 2016/07/13 12:19:28 can be const
Navid Zolghadr 2016/07/13 16:28:14 Sure.
+
+private:
+
+ WebInputEventResult handleGestureShowPress();
+ WebInputEventResult handleGestureTapDown(const GestureEventWithHitTestResults&);
+ WebInputEventResult handleGestureTap(const GestureEventWithHitTestResults&);
+ WebInputEventResult handleGestureLongPress(const GestureEventWithHitTestResults&);
+ WebInputEventResult handleGestureLongTap(const GestureEventWithHitTestResults&);
+
+ FrameHost* frameHost() const;
+
+ // NOTE: If adding a new field to this class please ensure that it is
+ // cleared if needed in |GestureManager::clear()|.
+
+ const Member<LocalFrame> m_frame;
+
+ ScrollManager* m_scrollManager;
+ PointerEventManager* m_pointerEventManager;
+
+ // Set on GestureTapDown if the |pointerdown| event corresponding to the
+ // triggering |touchstart| event was canceled. This suppresses mouse event
+ // firing for the current gesture sequence (i.e. until next GestureTapDown).
+ bool m_suppressMouseEventsFromGestures;
+
+ bool m_longTapShouldInvokeContextMenu;
+
+ const Member<SelectionController> m_selectionController;
+
+ double m_lastShowPressTimestamp;
+
+};
+
+} // namespace blink
+
+#endif // GestureManager_h

Powered by Google App Engine
This is Rietveld 408576698