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

Unified Diff: content/browser/renderer_host/input/touch_emulator.h

Issue 375863005: Touch emulator: allow multiple touch streams. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Do not clear sequence count when reenabling Created 6 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: content/browser/renderer_host/input/touch_emulator.h
diff --git a/content/browser/renderer_host/input/touch_emulator.h b/content/browser/renderer_host/input/touch_emulator.h
index c6950c966b76274fbb6e1f1127cbb5441be8bfb1..aef7899adfdfa2fb93f3259a2c2ee938daf89bf9 100644
--- a/content/browser/renderer_host/input/touch_emulator.h
+++ b/content/browser/renderer_host/input/touch_emulator.h
@@ -23,15 +23,22 @@ class CONTENT_EXPORT TouchEmulator : public ui::GestureProviderClient {
void Enable(bool allow_pinch);
void Disable();
- // Returns |true| if the event was consumed.
+ // Note that TouchEmulator should always listen to touch events and their acks
+ // (even in disabled state) to track native stream presence.
+ bool enabled() const { return enabled_; }
+
+ // Returns |true| if the event was consumed. Consumed event should not
+ // propagate any further.
// TODO(dgozman): maybe pass latency info together with events.
bool HandleMouseEvent(const blink::WebMouseEvent& event);
bool HandleMouseWheelEvent(const blink::WebMouseWheelEvent& event);
bool HandleKeyboardEvent(const blink::WebKeyboardEvent& event);
+ bool HandleTouchEvent(const blink::WebTouchEvent& event);
// Returns |true| if the event ack was consumed. Consumed ack should not
// propagate any further.
- bool HandleTouchEventAck(InputEventAckState ack_result);
+ bool HandleTouchEventAck(const blink::WebTouchEvent& event,
+ InputEventAckState ack_result);
// Cancel any touches, for example, when focus is lost.
void CancelTouch();
@@ -59,6 +66,8 @@ class CONTENT_EXPORT TouchEmulator : public ui::GestureProviderClient {
void PinchEnd(const blink::WebGestureEvent& event);
void ScrollEnd(const blink::WebGestureEvent& event);
+ void ForwardTouchEventToClient();
+
TouchEmulatorClient* const client_;
ui::FilteredGestureProvider gesture_provider_;
@@ -83,7 +92,8 @@ class CONTENT_EXPORT TouchEmulator : public ui::GestureProviderClient {
bool shift_pressed_;
blink::WebTouchEvent touch_event_;
- bool touch_active_;
+ int emulated_stream_active_sequence_count_;
+ int native_stream_active_sequence_count_;
// Whether we should suppress next fling cancel. This may happen when we
// did not send fling start in pinch mode.

Powered by Google App Engine
This is Rietveld 408576698