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

Side by Side Diff: content/browser/renderer_host/render_widget_host_input_event_router.h

Issue 2034213002: Reland: Fix touchpad gesture routing to renderers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed DCHECK's Created 4 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_INPUT_EVENT_ROUTER_H_ 5 #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_INPUT_EVENT_ROUTER_H_
6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_INPUT_EVENT_ROUTER_H_ 6 #define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_INPUT_EVENT_ROUTER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <deque> 10 #include <deque>
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 const gfx::Point& point_in_quad_space) override; 89 const gfx::Point& point_in_quad_space) override;
90 bool AcceptHitTarget(const cc::SurfaceDrawQuad* surface_quad, 90 bool AcceptHitTarget(const cc::SurfaceDrawQuad* surface_quad,
91 const gfx::Point& point_in_quad_space) override; 91 const gfx::Point& point_in_quad_space) override;
92 92
93 const std::unordered_map<cc::SurfaceId, HittestData, cc::SurfaceIdHash>& 93 const std::unordered_map<cc::SurfaceId, HittestData, cc::SurfaceIdHash>&
94 hittest_data_; 94 hittest_data_;
95 }; 95 };
96 96
97 using SurfaceIdNamespaceOwnerMap = 97 using SurfaceIdNamespaceOwnerMap =
98 base::hash_map<uint32_t, RenderWidgetHostViewBase*>; 98 base::hash_map<uint32_t, RenderWidgetHostViewBase*>;
99 struct GestureTargetData { 99 struct TouchscreenGestureTargetData {
100 RenderWidgetHostViewBase* target; 100 RenderWidgetHostViewBase* target;
101 const gfx::Vector2d delta; 101 const gfx::Vector2d delta;
102 102
103 GestureTargetData(RenderWidgetHostViewBase* target, gfx::Vector2d delta) 103 TouchscreenGestureTargetData(RenderWidgetHostViewBase* target,
104 gfx::Vector2d delta)
104 : target(target), delta(delta) {} 105 : target(target), delta(delta) {}
105 }; 106 };
106 using GestureTargetQueue = std::deque<GestureTargetData>; 107 using TouchscreenGestureTargetQueue =
108 std::deque<TouchscreenGestureTargetData>;
107 109
108 void ClearAllObserverRegistrations(); 110 void ClearAllObserverRegistrations();
109 111
110 RenderWidgetHostViewBase* FindEventTarget(RenderWidgetHostViewBase* root_view, 112 RenderWidgetHostViewBase* FindEventTarget(RenderWidgetHostViewBase* root_view,
111 const gfx::Point& point, 113 const gfx::Point& point,
112 gfx::Point* transformed_point); 114 gfx::Point* transformed_point);
113 115
116 void RouteTouchscreenGestureEvent(RenderWidgetHostViewBase* root_view,
117 blink::WebGestureEvent* event,
118 const ui::LatencyInfo& latency);
119 void RouteTouchpadGestureEvent(RenderWidgetHostViewBase* root_view,
120 blink::WebGestureEvent* event,
121 const ui::LatencyInfo& latency);
122
114 SurfaceIdNamespaceOwnerMap owner_map_; 123 SurfaceIdNamespaceOwnerMap owner_map_;
115 GestureTargetQueue gesture_target_queue_; 124 TouchscreenGestureTargetQueue touchscreen_gesture_target_queue_;
116 RenderWidgetHostViewBase* touch_target_; 125 RenderWidgetHostViewBase* touch_target_;
117 RenderWidgetHostViewBase* gesture_target_; 126 RenderWidgetHostViewBase* touchscreen_gesture_target_;
127 RenderWidgetHostViewBase* touchpad_gesture_target_;
118 gfx::Vector2d touch_delta_; 128 gfx::Vector2d touch_delta_;
119 gfx::Vector2d gesture_delta_; 129 gfx::Vector2d touchscreen_gesture_delta_;
130 gfx::Vector2d touchpad_gesture_delta_;
120 int active_touches_; 131 int active_touches_;
sadrul 2016/06/08 15:56:30 Would it make sense to group these variables? e.g.
tdresser 2016/06/08 17:41:12 +1 We should perhaps rename the TouchscreenGestur
mohsen 2016/06/08 23:32:26 Cool. That makes it much cleaner. Done.
121 std::unordered_map<cc::SurfaceId, HittestData, cc::SurfaceIdHash> 132 std::unordered_map<cc::SurfaceId, HittestData, cc::SurfaceIdHash>
122 hittest_data_; 133 hittest_data_;
123 134
124 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostInputEventRouter); 135 DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostInputEventRouter);
125 FRIEND_TEST_ALL_PREFIXES(SitePerProcessBrowserTest, 136 FRIEND_TEST_ALL_PREFIXES(SitePerProcessBrowserTest,
126 InputEventRouterGestureTargetQueueTest); 137 InputEventRouterGestureTargetQueueTest);
138 FRIEND_TEST_ALL_PREFIXES(SitePerProcessBrowserTest,
139 InputEventRouterTouchpadGestureTargetTest);
127 }; 140 };
128 141
129 } // namespace content 142 } // namespace content
130 143
131 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_INPUT_EVENT_ROUTER_H _ 144 #endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_INPUT_EVENT_ROUTER_H _
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698