| Index: ui/views/widget/native_widget_win.cc
|
| diff --git a/ui/views/widget/native_widget_win.cc b/ui/views/widget/native_widget_win.cc
|
| index 2123600168a169c4d30f013f019e2a742a678971..dbeb132de6ee92b75ec03af821835cd3a3566830 100644
|
| --- a/ui/views/widget/native_widget_win.cc
|
| +++ b/ui/views/widget/native_widget_win.cc
|
| @@ -743,11 +743,25 @@ void NativeWidgetWin::HandleNativeBlur(HWND focused_window) {
|
| }
|
|
|
| bool NativeWidgetWin::HandleMouseEvent(const ui::MouseEvent& event) {
|
| - ui::MouseEvent dpi_event(event);
|
| - dpi_event.set_location(ui::win::ScreenToDIPPoint(event.location()));
|
| - dpi_event.set_root_location(ui::win::ScreenToDIPPoint(event.location()));
|
| - delegate_->OnMouseEvent(&dpi_event);
|
| - return dpi_event.handled();
|
| + static gfx::Transform scale_transform(
|
| + 1/ui::win::GetDeviceScaleFactor(), 0.0,
|
| + 0.0, 1/ui::win::GetDeviceScaleFactor(),
|
| + 0.0, 0.0);
|
| + if (event.IsMouseWheelEvent()) {
|
| + ui::MouseWheelEvent dpi_event(
|
| + static_cast<const ui::MouseWheelEvent&>(event));
|
| + dpi_event.UpdateForRootTransform(scale_transform);
|
| + delegate_->OnMouseEvent(&dpi_event);
|
| + return dpi_event.handled();
|
| + } else if (event.IsMouseEvent()) {
|
| + CHECK(!event.IsScrollEvent()); // Scroll events don't happen in Windows.
|
| + ui::MouseEvent dpi_event(event);
|
| + dpi_event.UpdateForRootTransform(scale_transform);
|
| + delegate_->OnMouseEvent(&dpi_event);
|
| + return dpi_event.handled();
|
| + }
|
| + NOTREACHED();
|
| + return false;
|
| }
|
|
|
| bool NativeWidgetWin::HandleKeyEvent(const ui::KeyEvent& event) {
|
|
|