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 9c01ec17e459644e594287dc8618333d741c3dd9..df5ea527e313dcc461b172b73c2f369a635d2072 100644 |
--- a/ui/views/win/hwnd_message_handler.cc |
+++ b/ui/views/win/hwnd_message_handler.cc |
@@ -522,12 +522,13 @@ void HWNDMessageHandler::GetWindowPlacement( |
} |
} |
-void HWNDMessageHandler::SetBounds(const gfx::Rect& bounds) { |
+void HWNDMessageHandler::SetBounds(const gfx::Rect& bounds_in_pixels) { |
LONG style = GetWindowLong(hwnd(), GWL_STYLE); |
if (style & WS_MAXIMIZE) |
SetWindowLong(hwnd(), GWL_STYLE, style & ~WS_MAXIMIZE); |
- SetWindowPos(hwnd(), NULL, bounds.x(), bounds.y(), bounds.width(), |
- bounds.height(), SWP_NOACTIVATE | SWP_NOZORDER); |
+ SetWindowPos(hwnd(), NULL, bounds_in_pixels.x(), bounds_in_pixels.y(), |
+ bounds_in_pixels.width(), bounds_in_pixels.height(), |
+ SWP_NOACTIVATE | SWP_NOZORDER); |
} |
void HWNDMessageHandler::SetSize(const gfx::Size& size) { |
@@ -1161,8 +1162,13 @@ void HWNDMessageHandler::RedrawLayeredWindowContents() { |
// We need to clip to the dirty rect ourselves. |
layered_window_contents_->sk_canvas()->save(SkCanvas::kClip_SaveFlag); |
+ double scale = ui::win::GetDeviceScaleFactor(); |
+ layered_window_contents_->sk_canvas()->scale( |
+ SkScalar(scale),SkScalar(scale)); |
layered_window_contents_->ClipRect(invalid_rect_); |
delegate_->PaintLayeredWindow(layered_window_contents_.get()); |
+ layered_window_contents_->sk_canvas()->scale( |
+ SkScalar(1.0/scale),SkScalar(1.0/scale)); |
layered_window_contents_->sk_canvas()->restore(); |
RECT wr; |