Chromium Code Reviews| Index: chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
| diff --git a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
| index 6dd25ffa99761ba91a47f4edbe6934fa853a13af..19da7c8a0bec85964bf02a79764611f340b56413 100644 |
| --- a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
| +++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
| @@ -431,13 +431,25 @@ gfx::FontRenderParams GetGtkFontRenderParams() { |
| } |
| double GetDPI() { |
| - GtkSettings* gtk_settings = gtk_settings_get_default(); |
| - CHECK(gtk_settings); |
| - gint gtk_dpi = -1; |
| - g_object_get(gtk_settings, "gtk-xft-dpi", >k_dpi, NULL); |
| - |
| - // GTK multiplies the DPI by 1024 before storing it. |
| - return (gtk_dpi > 0) ? gtk_dpi / 1024.0 : 96.0; |
| + // Linux chrome currently does not support dynamic DPI changes. |
| + // Keep using the first value detected. |
|
Elliot Glaysher
2016/06/01 17:22:43
I has a sad.
|
| + static double dpi = -1.f; |
| + if (dpi < 0) { |
| + const double kDefaultDPI = 96; |
| + |
| + GtkSettings* gtk_settings = gtk_settings_get_default(); |
| + CHECK(gtk_settings); |
| + gint gtk_dpi = -1; |
| + g_object_get(gtk_settings, "gtk-xft-dpi", >k_dpi, NULL); |
| + |
| + // GTK multiplies the DPI by 1024 before storing it. |
| + dpi = (gtk_dpi > 0) ? gtk_dpi / 1024.0 : kDefaultDPI; |
| + |
| + // DSF is always >=1.0 on win/cros and lower DSF has never been considered |
| + // nor tested. |
| + dpi = std::max(kDefaultDPI, dpi); |
| + } |
| + return dpi; |
| } |
| // Queries GTK for its font DPI setting and returns the number of pixels in a |