Commit 54668d23 authored by Tom Anderson's avatar Tom Anderson Committed by Commit Bot

Reland "Remove GTK scale factor workarounds"

This is a reland of 2c2f5494

Original change's description:
> Remove GTK scale factor workarounds
>
> The workarounds were initially added to fix rendering issues
> when the scale factor was an odd value like 1.01.  Hopefully
> the fractional scale factor support in Chrome is now good
> enough to handle these cases.
>
> This change prevents unexpected scale factor behavior like
> 1.25 remapping to 1.0.
>
> BUG=1033552
> R=oshima
>
> Change-Id: I1d22c1ddcf463fed12061ef265d2a6b4a4bcbeb8
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2121179
> Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#753653}

CQ_INCLUDE_TRYBOTS=luci.chromium.try:linux-trusty-rel

Bug: 1033552
Change-Id: Ia0ce07eb61efa56a7c0d3e3ade4a167d73510f94
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2124889
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: default avatarMitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#754224}
parent 537b1223
...@@ -1093,15 +1093,19 @@ float GtkUi::GetRawDeviceScaleFactor() { ...@@ -1093,15 +1093,19 @@ float GtkUi::GetRawDeviceScaleFactor() {
return display::Display::GetForcedDeviceScaleFactor(); return display::Display::GetForcedDeviceScaleFactor();
GdkScreen* screen = gdk_screen_get_default(); GdkScreen* screen = gdk_screen_get_default();
gint scale = gtk_widget_get_scale_factor(fake_window_); float scale = gtk_widget_get_scale_factor(fake_window_);
DCHECK_GT(scale, 0); DCHECK_GT(scale, 0.0);
gdouble resolution = gdk_screen_get_resolution(screen);
const float scale_factor =
resolution <= 0 ? scale : resolution * scale / kDefaultDPI;
// Blacklist scaling factors <120% (crbug.com/484400) and round gdouble resolution = gdk_screen_get_resolution(screen);
// to 1 decimal to prevent rendering problems (crbug.com/485183). // TODO(https://crbug.com/1033552): Remove this hack once the Trusty bots are
return scale_factor < 1.2f ? 1.0f : roundf(scale_factor * 10) / 10; // fixed to have a resolution of 96, or when the Trusty bots are removed
// altogether.
if (std::abs(resolution - 95.8486) < 0.001)
resolution = 96;
if (resolution > 0)
scale *= resolution / kDefaultDPI;
return scale;
} }
void GtkUi::UpdateDeviceScaleFactor() { void GtkUi::UpdateDeviceScaleFactor() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment