Index: ui/aura/mus/window_tree_client.cc |
diff --git a/ui/aura/mus/window_tree_client.cc b/ui/aura/mus/window_tree_client.cc |
index b71391bc5bab8f5977235c55f7e570fe3f791b1c..b7f687be130855706b62fa0bc651c0c837cea73b 100644 |
--- a/ui/aura/mus/window_tree_client.cc |
+++ b/ui/aura/mus/window_tree_client.cc |
@@ -1153,8 +1153,13 @@ void WindowTreeClient::OnWindowInputEvent(uint32_t event_id, |
// to WindowTreeHost we need it to be relative to WindowTreeHost. |
if (event->IsLocatedEvent()) { |
gfx::Point host_location = event->AsLocatedEvent()->location(); |
- aura::Window::ConvertPointToTarget(window->GetWindow(), host->window(), |
- &host_location); |
+ gfx::Transform transform; |
+ window->GetWindow()->layer()->GetTargetTransformRelativeTo( |
+ host->window()->layer(), &transform); |
+ transform.Scale(1, ScaleFactorForDisplay(window->GetWindow())); |
+ auto transformed_host_location = gfx::Point3F(gfx::PointF(host_location)); |
+ transform.TransformPoint(&transformed_host_location); |
+ host_location = gfx::ToFlooredPoint(transformed_host_location.AsPointF()); |
event->AsLocatedEvent()->set_location(host_location); |
} |