| Index: ash/sticky_keys/sticky_keys_controller.cc
|
| diff --git a/ash/sticky_keys/sticky_keys_controller.cc b/ash/sticky_keys/sticky_keys_controller.cc
|
| index e5bb0afe2483c32c1dbd4a20dfff9f6583cf4c8b..45c1248567614e7062aa0e0d135adb9b544fb82d 100644
|
| --- a/ash/sticky_keys/sticky_keys_controller.cc
|
| +++ b/ash/sticky_keys/sticky_keys_controller.cc
|
| @@ -69,10 +69,18 @@ void StickyKeysHandlerDelegateImpl::DispatchMouseEvent(ui::MouseEvent* event,
|
| DCHECK(target);
|
| // We need to send a new, untransformed mouse event to the host.
|
| if (event->IsMouseWheelEvent()) {
|
| - ui::MouseWheelEvent new_event(event->native_event());
|
| + aura::Window* source = static_cast<aura::Window*>(event->target());
|
| + ui::MouseWheelEvent new_event(*static_cast<ui::MouseWheelEvent*>(event),
|
| + source,
|
| + source->GetRootWindow());
|
| + // Transform the location back to host coordinates before dispatching.
|
| + new_event.UpdateForRootTransform(source->GetHost()->GetRootTransform());
|
| DispatchEvent(&new_event, target);
|
| } else {
|
| - ui::MouseEvent new_event(event->native_event());
|
| + aura::Window* source = static_cast<aura::Window*>(event->target());
|
| + ui::MouseEvent new_event(*event, source, source->GetRootWindow());
|
| + // Transform the location back to host coordinates before dispatching.
|
| + new_event.UpdateForRootTransform(source->GetHost()->GetRootTransform());
|
| DispatchEvent(&new_event, target);
|
| }
|
| }
|
|
|