| 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*,
|
| + 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();
|
| +
|
| +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
|
|
|