Index: ui/aura/root_window.cc |
diff --git a/ui/aura/root_window.cc b/ui/aura/root_window.cc |
index 7396ad685054625324455ac300d3ea4bd5365f8a..059cee4ea49c3662f3e756210f9cf8bc358fa31d 100644 |
--- a/ui/aura/root_window.cc |
+++ b/ui/aura/root_window.cc |
@@ -196,6 +196,28 @@ bool RootWindow::DispatchKeyEvent(KeyEvent* event) { |
return false; |
} |
+bool RootWindow::DispatchScrollEvent(ScrollEvent* event) { |
+ event->UpdateForTransform(layer()->transform()); |
+ |
+ last_mouse_location_ = event->location(); |
+ |
+ Window* target = |
+ mouse_pressed_handler_ ? mouse_pressed_handler_ : capture_window_; |
+ if (!target) |
+ target = GetEventHandlerForPoint(event->location()); |
+ |
+ if (target && target->delegate()) { |
+ int flags = event->flags(); |
+ gfx::Point location_in_window = event->location(); |
+ Window::ConvertPointToWindow(this, target, &location_in_window); |
+ if (IsNonClientLocation(target, location_in_window)) |
+ flags |= ui::EF_IS_NON_CLIENT; |
+ ScrollEvent translated_event(*event, this, target, event->type(), flags); |
+ return ProcessMouseEvent(target, &translated_event); |
+ } |
+ return false; |
+} |
+ |
bool RootWindow::DispatchTouchEvent(TouchEvent* event) { |
event->UpdateForTransform(layer()->transform()); |
bool handled = false; |