Chromium Code Reviews| 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 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 185 target = mouse_capture_target_.target; | 185 target = mouse_capture_target_.target; |
| 186 transformed_point = root_view->TransformPointToCoordSpaceForView( | 186 transformed_point = root_view->TransformPointToCoordSpaceForView( |
| 187 gfx::Point(event->x, event->y), target); | 187 gfx::Point(event->x, event->y), target); |
| 188 if (event->type == blink::WebInputEvent::MouseUp) | 188 if (event->type == blink::WebInputEvent::MouseUp) |
| 189 mouse_capture_target_.target = nullptr; | 189 mouse_capture_target_.target = nullptr; |
| 190 } else { | 190 } else { |
| 191 target = FindEventTarget(root_view, gfx::Point(event->x, event->y), | 191 target = FindEventTarget(root_view, gfx::Point(event->x, event->y), |
| 192 &transformed_point); | 192 &transformed_point); |
| 193 } | 193 } |
| 194 | 194 |
| 195 // RenderWidgetHostViewGuest does not properly handle direct routing of mouse | |
| 196 // events, so they have to go by the double-hop forwarding path through | |
| 197 // the embedding renderer and then BrowserPluginGuest. | |
| 198 if (target && target->IsRenderWidgetHostViewGuest()) { | |
| 199 root_view->ProcessMouseEvent(*event, latency); | |
|
wjmaclean
2016/09/21 18:34:52
Do we always want to go to the root? This will wor
kenrb
2016/09/21 18:56:36
WebViews can't be embedded by web content, so AFAI
| |
| 200 return; | |
| 201 } | |
| 202 | |
| 195 if (event->type == blink::WebInputEvent::MouseDown) | 203 if (event->type == blink::WebInputEvent::MouseDown) |
| 196 mouse_capture_target_.target = target; | 204 mouse_capture_target_.target = target; |
| 197 | 205 |
| 198 if (!target) | 206 if (!target) |
| 199 return; | 207 return; |
| 200 | 208 |
| 201 // SendMouseEnterOrLeaveEvents is called with the original event | 209 // SendMouseEnterOrLeaveEvents is called with the original event |
| 202 // coordinates, which are transformed independently for each view that will | 210 // coordinates, which are transformed independently for each view that will |
| 203 // receive an event. | 211 // receive an event. |
| 204 if ((event->type == blink::WebInputEvent::MouseLeave || | 212 if ((event->type == blink::WebInputEvent::MouseLeave || |
| (...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 711 if (!touchpad_gesture_target_.target) | 719 if (!touchpad_gesture_target_.target) |
| 712 return; | 720 return; |
| 713 | 721 |
| 714 // TODO(mohsen): Add tests to check event location. | 722 // TODO(mohsen): Add tests to check event location. |
| 715 event->x += touchpad_gesture_target_.delta.x(); | 723 event->x += touchpad_gesture_target_.delta.x(); |
| 716 event->y += touchpad_gesture_target_.delta.y(); | 724 event->y += touchpad_gesture_target_.delta.y(); |
| 717 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency); | 725 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency); |
| 718 } | 726 } |
| 719 | 727 |
| 720 } // namespace content | 728 } // namespace content |
| OLD | NEW |