OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/frame_host/cross_process_frame_connector.h" | 5 #include "content/browser/frame_host/cross_process_frame_connector.h" |
6 | 6 |
7 #include "cc/surfaces/surface.h" | 7 #include "cc/surfaces/surface.h" |
8 #include "cc/surfaces/surface_hittest.h" | 8 #include "cc/surfaces/surface_hittest.h" |
9 #include "cc/surfaces/surface_manager.h" | 9 #include "cc/surfaces/surface_manager.h" |
10 #include "content/browser/compositor/surface_utils.h" | 10 #include "content/browser/compositor/surface_utils.h" |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 const TouchEventWithLatencyInfo& touch, | 176 const TouchEventWithLatencyInfo& touch, |
177 InputEventAckState ack_result) { | 177 InputEventAckState ack_result) { |
178 auto* main_view = GetRootRenderWidgetHostView(); | 178 auto* main_view = GetRootRenderWidgetHostView(); |
179 if (main_view) | 179 if (main_view) |
180 main_view->ProcessAckedTouchEvent(touch, ack_result); | 180 main_view->ProcessAckedTouchEvent(touch, ack_result); |
181 } | 181 } |
182 | 182 |
183 void CrossProcessFrameConnector::BubbleScrollEvent( | 183 void CrossProcessFrameConnector::BubbleScrollEvent( |
184 const blink::WebGestureEvent& event) { | 184 const blink::WebGestureEvent& event) { |
185 DCHECK(event.GetType() == blink::WebInputEvent::kGestureScrollUpdate || | 185 DCHECK(event.GetType() == blink::WebInputEvent::kGestureScrollUpdate || |
186 event.GetType() == blink::WebInputEvent::kGestureScrollEnd); | 186 event.GetType() == blink::WebInputEvent::kGestureScrollEnd || |
| 187 event.GetType() == blink::WebInputEvent::kGestureFlingStart); |
187 auto* parent_view = GetParentRenderWidgetHostView(); | 188 auto* parent_view = GetParentRenderWidgetHostView(); |
188 | 189 |
189 if (!parent_view) | 190 if (!parent_view) |
190 return; | 191 return; |
191 | 192 |
192 auto* event_router = | 193 auto* event_router = |
193 RenderWidgetHostImpl::From(parent_view->GetRenderWidgetHost()) | 194 RenderWidgetHostImpl::From(parent_view->GetRenderWidgetHost()) |
194 ->delegate() | 195 ->delegate() |
195 ->GetInputEventRouter(); | 196 ->GetInputEventRouter(); |
196 | 197 |
197 gfx::Vector2d offset_from_parent = child_frame_rect_.OffsetFromOrigin(); | 198 gfx::Vector2d offset_from_parent = child_frame_rect_.OffsetFromOrigin(); |
198 blink::WebGestureEvent resent_gesture_event(event); | 199 blink::WebGestureEvent resent_gesture_event(event); |
199 // TODO(kenrb, wjmaclean): Do we need to account for transforms here? | 200 // TODO(kenrb, wjmaclean): Do we need to account for transforms here? |
200 // See https://crbug.com/626020. | 201 // See https://crbug.com/626020. |
201 resent_gesture_event.x += offset_from_parent.x(); | 202 resent_gesture_event.x += offset_from_parent.x(); |
202 resent_gesture_event.y += offset_from_parent.y(); | 203 resent_gesture_event.y += offset_from_parent.y(); |
203 if (event.GetType() == blink::WebInputEvent::kGestureScrollUpdate) { | 204 if (event.GetType() == blink::WebInputEvent::kGestureScrollUpdate) { |
204 event_router->BubbleScrollEvent(parent_view, resent_gesture_event); | 205 event_router->BubbleScrollEvent(parent_view, resent_gesture_event); |
205 is_scroll_bubbling_ = true; | 206 is_scroll_bubbling_ = true; |
206 } else if (event.GetType() == blink::WebInputEvent::kGestureScrollEnd && | 207 } else if ((event.GetType() == blink::WebInputEvent::kGestureScrollEnd || |
| 208 event.GetType() == blink::WebInputEvent::kGestureFlingStart) && |
207 is_scroll_bubbling_) { | 209 is_scroll_bubbling_) { |
208 event_router->BubbleScrollEvent(parent_view, resent_gesture_event); | 210 event_router->BubbleScrollEvent(parent_view, resent_gesture_event); |
209 is_scroll_bubbling_ = false; | 211 is_scroll_bubbling_ = false; |
210 } | 212 } |
211 } | 213 } |
212 | 214 |
213 bool CrossProcessFrameConnector::HasFocus() { | 215 bool CrossProcessFrameConnector::HasFocus() { |
214 RenderWidgetHostViewBase* root_view = GetRootRenderWidgetHostView(); | 216 RenderWidgetHostViewBase* root_view = GetRootRenderWidgetHostView(); |
215 if (root_view) | 217 if (root_view) |
216 return root_view->HasFocus(); | 218 return root_view->HasFocus(); |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
329 | 331 |
330 if (parent) { | 332 if (parent) { |
331 return static_cast<RenderWidgetHostViewBase*>( | 333 return static_cast<RenderWidgetHostViewBase*>( |
332 parent->current_frame_host()->GetView()); | 334 parent->current_frame_host()->GetView()); |
333 } | 335 } |
334 | 336 |
335 return nullptr; | 337 return nullptr; |
336 } | 338 } |
337 | 339 |
338 } // namespace content | 340 } // namespace content |
OLD | NEW |