OLD | NEW |
---|---|
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 #include "content/browser/renderer_host/render_widget_host_input_event_router.h" | 5 #include "content/browser/renderer_host/render_widget_host_input_event_router.h" |
6 | 6 |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/metrics/histogram_macros.h" | 9 #include "base/metrics/histogram_macros.h" |
10 | 10 |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
166 if (iter == owner_map_.end()) | 166 if (iter == owner_map_.end()) |
167 return root_view; | 167 return root_view; |
168 | 168 |
169 return iter->second; | 169 return iter->second; |
170 } | 170 } |
171 | 171 |
172 void RenderWidgetHostInputEventRouter::RouteMouseEvent( | 172 void RenderWidgetHostInputEventRouter::RouteMouseEvent( |
173 RenderWidgetHostViewBase* root_view, | 173 RenderWidgetHostViewBase* root_view, |
174 blink::WebMouseEvent* event, | 174 blink::WebMouseEvent* event, |
175 const ui::LatencyInfo& latency) { | 175 const ui::LatencyInfo& latency) { |
176 RenderWidgetHostViewBase* target; | 176 RenderWidgetHostViewBase* target; |
Charlie Reis
2017/02/15 21:38:49
Given all the conditional assignments below, let's
lfg
2017/02/15 22:02:48
Done.
| |
177 gfx::Point transformed_point; | 177 gfx::Point transformed_point; |
178 | |
179 if (root_view->IsMouseLocked()) { | |
Charlie Reis
2017/02/15 21:38:49
It's probably worth putting a comment on this bloc
lfg
2017/02/15 22:02:48
Done.
| |
180 target = RenderWidgetHostImpl::From(root_view->GetRenderWidgetHost()) | |
181 ->delegate() | |
182 ->MouseLockWidget() | |
183 ->GetView(); | |
184 if (!root_view->TransformPointToCoordSpaceForView( | |
185 gfx::Point(event->x, event->y), target, &transformed_point)) | |
186 return; | |
187 | |
188 event->x = transformed_point.x(); | |
189 event->y = transformed_point.y(); | |
190 target->ProcessMouseEvent(*event, latency); | |
191 return; | |
192 } | |
193 | |
178 const int mouse_button_modifiers = blink::WebInputEvent::LeftButtonDown | | 194 const int mouse_button_modifiers = blink::WebInputEvent::LeftButtonDown | |
179 blink::WebInputEvent::MiddleButtonDown | | 195 blink::WebInputEvent::MiddleButtonDown | |
180 blink::WebInputEvent::RightButtonDown; | 196 blink::WebInputEvent::RightButtonDown; |
181 if (mouse_capture_target_.target && | 197 if (mouse_capture_target_.target && |
182 event->type() != blink::WebInputEvent::MouseDown && | 198 event->type() != blink::WebInputEvent::MouseDown && |
183 (event->type() == blink::WebInputEvent::MouseUp || | 199 (event->type() == blink::WebInputEvent::MouseUp || |
184 event->modifiers() & mouse_button_modifiers)) { | 200 event->modifiers() & mouse_button_modifiers)) { |
185 target = mouse_capture_target_.target; | 201 target = mouse_capture_target_.target; |
186 if (!root_view->TransformPointToCoordSpaceForView( | 202 if (!root_view->TransformPointToCoordSpaceForView( |
187 gfx::Point(event->x, event->y), target, &transformed_point)) | 203 gfx::Point(event->x, event->y), target, &transformed_point)) |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
240 | 256 |
241 event->x = transformed_point.x(); | 257 event->x = transformed_point.x(); |
242 event->y = transformed_point.y(); | 258 event->y = transformed_point.y(); |
243 target->ProcessMouseEvent(*event, latency); | 259 target->ProcessMouseEvent(*event, latency); |
244 } | 260 } |
245 | 261 |
246 void RenderWidgetHostInputEventRouter::RouteMouseWheelEvent( | 262 void RenderWidgetHostInputEventRouter::RouteMouseWheelEvent( |
247 RenderWidgetHostViewBase* root_view, | 263 RenderWidgetHostViewBase* root_view, |
248 blink::WebMouseWheelEvent* event, | 264 blink::WebMouseWheelEvent* event, |
249 const ui::LatencyInfo& latency) { | 265 const ui::LatencyInfo& latency) { |
266 if (root_view->IsMouseLocked()) { | |
267 RenderWidgetHostImpl::From(root_view->GetRenderWidgetHost()) | |
268 ->delegate() | |
269 ->MouseLockWidget() | |
270 ->GetView() | |
271 ->ProcessMouseEvent(*event, latency); | |
272 return; | |
273 } | |
274 | |
250 gfx::Point transformed_point; | 275 gfx::Point transformed_point; |
251 RenderWidgetHostViewBase* target = FindEventTarget( | 276 RenderWidgetHostViewBase* target = FindEventTarget( |
252 root_view, gfx::Point(event->x, event->y), &transformed_point); | 277 root_view, gfx::Point(event->x, event->y), &transformed_point); |
253 if (!target) | 278 if (!target) |
254 return; | 279 return; |
255 | 280 |
256 event->x = transformed_point.x(); | 281 event->x = transformed_point.x(); |
257 event->y = transformed_point.y(); | 282 event->y = transformed_point.y(); |
258 target->ProcessMouseWheelEvent(*event, latency); | 283 target->ProcessMouseWheelEvent(*event, latency); |
259 } | 284 } |
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
779 if (!touchpad_gesture_target_.target) | 804 if (!touchpad_gesture_target_.target) |
780 return; | 805 return; |
781 | 806 |
782 // TODO(mohsen): Add tests to check event location. | 807 // TODO(mohsen): Add tests to check event location. |
783 event->x += touchpad_gesture_target_.delta.x(); | 808 event->x += touchpad_gesture_target_.delta.x(); |
784 event->y += touchpad_gesture_target_.delta.y(); | 809 event->y += touchpad_gesture_target_.delta.y(); |
785 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency); | 810 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency); |
786 } | 811 } |
787 | 812 |
788 } // namespace content | 813 } // namespace content |
OLD | NEW |