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

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

Issue 2846323002: Fix routing of mouse wheel events while pointer is locked. (Closed)
Patch Set: Created 3 years, 7 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
« no previous file with comments | « content/browser/pointer_lock_browsertest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 #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 #include "cc/quads/surface_draw_quad.h" 10 #include "cc/quads/surface_draw_quad.h"
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 256
257 event->x = transformed_point.x(); 257 event->x = transformed_point.x();
258 event->y = transformed_point.y(); 258 event->y = transformed_point.y();
259 target->ProcessMouseEvent(*event, latency); 259 target->ProcessMouseEvent(*event, latency);
260 } 260 }
261 261
262 void RenderWidgetHostInputEventRouter::RouteMouseWheelEvent( 262 void RenderWidgetHostInputEventRouter::RouteMouseWheelEvent(
263 RenderWidgetHostViewBase* root_view, 263 RenderWidgetHostViewBase* root_view,
264 blink::WebMouseWheelEvent* event, 264 blink::WebMouseWheelEvent* event,
265 const ui::LatencyInfo& latency) { 265 const ui::LatencyInfo& latency) {
266 RenderWidgetHostViewBase* target = nullptr;
267 gfx::Point transformed_point;
268
266 if (root_view->IsMouseLocked()) { 269 if (root_view->IsMouseLocked()) {
267 RenderWidgetHostImpl::From(root_view->GetRenderWidgetHost()) 270 target = RenderWidgetHostImpl::From(root_view->GetRenderWidgetHost())
268 ->delegate() 271 ->delegate()
269 ->GetMouseLockWidget() 272 ->GetMouseLockWidget()
270 ->GetView() 273 ->GetView();
271 ->ProcessMouseEvent(*event, latency); 274 if (!root_view->TransformPointToCoordSpaceForView(
272 return; 275 gfx::Point(event->x, event->y), target, &transformed_point))
276 return;
277 } else {
278 target = FindEventTarget(root_view, gfx::Point(event->x, event->y),
279 &transformed_point);
273 } 280 }
274 281
275 gfx::Point transformed_point;
276 RenderWidgetHostViewBase* target = FindEventTarget(
277 root_view, gfx::Point(event->x, event->y), &transformed_point);
278 if (!target) 282 if (!target)
279 return; 283 return;
280 284
281 event->x = transformed_point.x(); 285 event->x = transformed_point.x();
282 event->y = transformed_point.y(); 286 event->y = transformed_point.y();
283 target->ProcessMouseWheelEvent(*event, latency); 287 target->ProcessMouseWheelEvent(*event, latency);
284 } 288 }
285 289
286 void RenderWidgetHostInputEventRouter::RouteGestureEvent( 290 void RenderWidgetHostInputEventRouter::RouteGestureEvent(
287 RenderWidgetHostViewBase* root_view, 291 RenderWidgetHostViewBase* root_view,
(...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after
804 if (!touchpad_gesture_target_.target) 808 if (!touchpad_gesture_target_.target)
805 return; 809 return;
806 810
807 // TODO(mohsen): Add tests to check event location. 811 // TODO(mohsen): Add tests to check event location.
808 event->x += touchpad_gesture_target_.delta.x(); 812 event->x += touchpad_gesture_target_.delta.x();
809 event->y += touchpad_gesture_target_.delta.y(); 813 event->y += touchpad_gesture_target_.delta.y();
810 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency); 814 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency);
811 } 815 }
812 816
813 } // namespace content 817 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/pointer_lock_browsertest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698