Chromium Code Reviews| 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..f313e7303656f5e5cb5151515ca31e464ba32a76 100644 |
| --- a/ash/sticky_keys/sticky_keys_controller.cc |
| +++ b/ash/sticky_keys/sticky_keys_controller.cc |
| @@ -69,11 +69,31 @@ 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()); |
| - DispatchEvent(&new_event, target); |
| + if (event->HasNativeEvent()) { |
| + ui::MouseWheelEvent new_event(event->native_event()); |
| + DispatchEvent(&new_event, target); |
| + } else { |
| + aura::Window* source = static_cast<aura::Window*>(event->target()); |
| + ui::MouseWheelEvent new_event(*static_cast<ui::MouseWheelEvent*>(event), |
| + source, |
| + source->GetRootWindow(), |
| + event->type(), |
| + event->flags()); |
|
sadrul
2014/04/07 21:57:33
It looks like this ctor for MouseWheelEvent is not
Tim Song
2014/04/07 22:23:27
Done.
|
| + // 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()); |
| - DispatchEvent(&new_event, target); |
| + if (event->HasNativeEvent()) { |
| + ui::MouseEvent new_event(event->native_event()); |
| + DispatchEvent(&new_event, target); |
| + } else { |
| + 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); |
| + } |
|
sadrul
2014/04/07 21:57:33
You can always just create the new event out of th
Tim Song
2014/04/07 22:23:27
Done. You're right, it should be equivalent in thi
|
| } |
| } |