Index: ui/views/win/hwnd_message_handler.cc |
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc |
index d8c14ee9b2776f12091f4af804e3da9a69df6ff0..6c926d5166018a53c6e9c4b1c93b403f31e15f12 100644 |
--- a/ui/views/win/hwnd_message_handler.cc |
+++ b/ui/views/win/hwnd_message_handler.cc |
@@ -28,6 +28,7 @@ |
#include "ui/base/win/mouse_wheel_util.h" |
#include "ui/base/win/shell.h" |
#include "ui/base/win/touch_input.h" |
+#include "ui/display/win/dpi.h" |
#include "ui/events/event.h" |
#include "ui/events/event_utils.h" |
#include "ui/events/keycodes/keyboard_code_conversion_win.h" |
@@ -1395,6 +1396,18 @@ LRESULT HWNDMessageHandler::OnDwmCompositionChanged(UINT msg, |
return 0; |
} |
+LRESULT HWNDMessageHandler::OnDpiChanged(UINT msg, |
+ WPARAM w_param, |
+ LPARAM l_param) { |
+ if (LOWORD(w_param) != HIWORD(w_param)) |
+ NOTIMPLEMENTED() << "Received non-square scaling factors"; |
+ |
+ SetBoundsInternal(gfx::Rect(*reinterpret_cast<RECT*>(l_param)), false); |
+ delegate_->HandleWindowScaleFactorChanged( |
+ display::win::GetScalingFactorFromDPI(LOWORD(w_param))); |
+ return 0; |
+} |
+ |
void HWNDMessageHandler::OnEnterMenuLoop(BOOL from_track_popup_menu) { |
if (menu_depth_++ == 0) |
delegate_->HandleMenuLoop(true); |