Index: ui/aura/root_window.cc |
diff --git a/ui/aura/root_window.cc b/ui/aura/root_window.cc |
index c2a63a58f329d3728c691ea74ac427aa3f4d9ba4..d5c041f2007bdc8a9c705671fc41c0f879bd9144 100644 |
--- a/ui/aura/root_window.cc |
+++ b/ui/aura/root_window.cc |
@@ -36,8 +36,8 @@ |
#include "ui/gfx/display.h" |
#include "ui/gfx/point3_f.h" |
#include "ui/gfx/point_conversions.h" |
-#include "ui/gfx/rect_conversions.h" |
#include "ui/gfx/screen.h" |
+#include "ui/gfx/size_conversions.h" |
using std::vector; |
@@ -759,7 +759,6 @@ void RootWindow::UpdateWindowSize(const gfx::Size& host_size) { |
bounds = ui::ConvertRectToDIP(layer(), bounds); |
gfx::RectF new_bounds(bounds); |
layer()->transform().TransformRect(&new_bounds); |
- |
// It makes little sense to scale beyond the original |
// resolution. |
DCHECK_LE(root_window_scale_, GetDeviceScaleFactor()); |
@@ -770,7 +769,10 @@ void RootWindow::UpdateWindowSize(const gfx::Size& host_size) { |
new_bounds.Scale(root_window_scale_ * root_window_scale_); |
// Ignore the origin because RootWindow's insets are handled by |
// the transform. |
- SetBounds(gfx::Rect(gfx::ToNearestRect(new_bounds).size())); |
+ // Round the size because the bounds is no longer aligned to |
+ // backing pixel when |root_window_scale_| is specified |
+ // (850 height at 1.25 scale becomes 1062.5 for example.) |
+ SetBounds(gfx::Rect(gfx::ToRoundedSize(new_bounds.size()))); |
} |
void RootWindow::OnWindowAddedToRootWindow(Window* attached) { |