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

Unified Diff: third_party/WebKit/public/platform/WebGestureEvent.h

Issue 2497033002: Break apart WebGestureEvent from WebInputEvent. (Closed)
Patch Set: Rebase Created 4 years, 1 month 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
« no previous file with comments | « third_party/WebKit/public/BUILD.gn ('k') | third_party/WebKit/public/platform/WebInputEvent.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/public/platform/WebGestureEvent.h
diff --git a/third_party/WebKit/public/platform/WebGestureEvent.h b/third_party/WebKit/public/platform/WebGestureEvent.h
new file mode 100644
index 0000000000000000000000000000000000000000..791562f026cef28315ce63a0f281d94c03992b14
--- /dev/null
+++ b/third_party/WebKit/public/platform/WebGestureEvent.h
@@ -0,0 +1,171 @@
+// 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 WebGestureEvent_h
+#define WebGestureEvent_h
+
+#include "WebGestureDevice.h"
+#include "WebInputEvent.h"
+
+namespace blink {
+
+// See WebInputEvent.h for details why this pack is here.
+#pragma pack(push, 4)
+
+// WebGestureEvent ---------------------------------------------------------
+
+class WebGestureEvent : public WebInputEvent {
+ public:
+ enum ScrollUnits {
+ PrecisePixels = 0, // generated by high precision devices.
+ Pixels, // large pixel jump duration; should animate to delta.
+ Page // page (visible viewport) based scrolling.
+ };
+
+ enum InertialPhaseState {
+ UnknownMomentumPhase = 0, // No phase information.
+ NonMomentumPhase, // Regular scrolling phase.
+ MomentumPhase, // Momentum phase.
+ };
+
+ int x;
+ int y;
+ int globalX;
+ int globalY;
+ WebGestureDevice sourceDevice;
+
+ // If the WebGestureEvent has sourceDevice=WebGestureDeviceTouchscreen, this
+ // field contains the unique identifier for the touch event that released
+ // this event at TouchDispositionGestureFilter. If the WebGestureEvents was
+ // not released through a touch event (e.g. timer-released gesture events or
+ // gesture events with sourceDevice!=WebGestureDeviceTouchscreen), the field
+ // contains 0. See crbug.com/618738.
+ uint32_t uniqueTouchEventId;
+
+ // This field exists to allow BrowserPlugin to mark GestureScroll events as
+ // 'resent' to handle the case where an event is not consumed when first
+ // encountered; it should be handled differently by the plugin when it is
+ // sent for thesecond time. No code within Blink touches this, other than to
+ // plumb it through event conversions.
+ int resendingPluginId;
+
+ union {
+ // Tap information must be set for GestureTap, GestureTapUnconfirmed,
+ // and GestureDoubleTap events.
+ struct {
+ int tapCount;
+ float width;
+ float height;
+ } tap;
+
+ struct {
+ float width;
+ float height;
+ } tapDown;
+
+ struct {
+ float width;
+ float height;
+ } showPress;
+
+ struct {
+ float width;
+ float height;
+ } longPress;
+
+ struct {
+ float firstFingerWidth;
+ float firstFingerHeight;
+ } twoFingerTap;
+
+ struct {
+ // Initial motion that triggered the scroll.
+ // May be redundant with deltaX/deltaY in the first scrollUpdate.
+ float deltaXHint;
+ float deltaYHint;
+ // Default initialized to ScrollUnits::PrecisePixels.
+ ScrollUnits deltaHintUnits;
+ // If true, this event will skip hit testing to find a scroll
+ // target and instead just scroll the viewport.
+ bool targetViewport;
+ // The state of inertial phase scrolling. OSX has unique phases for normal
+ // and momentum scroll events. Should always be UnknownMomentumPhase for
+ // touch based input as it generates GestureFlingStart instead.
+ InertialPhaseState inertialPhase;
+ // True if this event was synthesized in order to force a hit test;
+ // avoiding scroll latching behavior until crbug.com/526463 is fully
+ // implemented.
+ bool synthetic;
+
+ // number of pointers down.
+ int pointerCount;
+ } scrollBegin;
+
+ struct {
+ float deltaX;
+ float deltaY;
+ float velocityX;
+ float velocityY;
+ // Whether any previous GestureScrollUpdate in the current scroll
+ // sequence was suppressed (e.g., the causal touchmove was
+ // preventDefault'ed). This bit is particularly useful for
+ // determining whether the observed scroll update sequence captures
+ // the entirety of the generative motion.
+ bool previousUpdateInSequencePrevented;
+ bool preventPropagation;
+ InertialPhaseState inertialPhase;
+ // Default initialized to ScrollUnits::PrecisePixels.
+ ScrollUnits deltaUnits;
+ } scrollUpdate;
+
+ struct {
+ // The original delta units the scrollBegin and scrollUpdates
+ // were sent as.
+ ScrollUnits deltaUnits;
+ // The state of inertial phase scrolling. OSX has unique phases for normal
+ // and momentum scroll events. Should always be UnknownMomentumPhase for
+ // touch based input as it generates GestureFlingStart instead.
+ InertialPhaseState inertialPhase;
+ // True if this event was synthesized in order to generate the proper
+ // GSB/GSU/GSE matching sequences. This is a temporary so that a future
+ // GSB will generate a hit test so latching behavior is avoided
+ // until crbug.com/526463 is fully implemented.
+ bool synthetic;
+ } scrollEnd;
+
+ struct {
+ float velocityX;
+ float velocityY;
+ // If true, this event will skip hit testing to find a scroll
+ // target and instead just scroll the viewport.
+ bool targetViewport;
+ } flingStart;
+
+ struct {
+ // If set to true, don't treat flingCancel
+ // as a part of fling boost events sequence.
+ bool preventBoosting;
+ } flingCancel;
+
+ struct {
+ bool zoomDisabled;
+ float scale;
+ } pinchUpdate;
+ } data;
+
+ WebGestureEvent()
+ : WebInputEvent(sizeof(WebGestureEvent)),
+ x(0),
+ y(0),
+ globalX(0),
+ globalY(0),
+ sourceDevice(WebGestureDeviceUninitialized),
+ resendingPluginId(-1) {}
+};
+
+#pragma pack(pop)
+
+} // namespace blink
+
+#endif // WebGestureEvent_h
« no previous file with comments | « third_party/WebKit/public/BUILD.gn ('k') | third_party/WebKit/public/platform/WebInputEvent.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698