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 5e16ba7dd2028d901420160102e503c09a16250e..4816c62c9edfced03998867dd534d1db24136e12 100644 |
--- a/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
+++ b/chrome/browser/ui/libgtk2ui/gtk2_ui.cc |
@@ -4,6 +4,7 @@ |
#include "chrome/browser/ui/libgtk2ui/gtk2_ui.h" |
+#include <math.h> |
#include <set> |
#include <pango/pango.h> |
@@ -380,16 +381,20 @@ gfx::FontRenderParams GetGtkFontRenderParams() { |
return params; |
} |
-// Queries GTK for its font DPI setting and returns the number of pixels in a |
-// point. |
-double GetPixelsInPoint(float device_scale_factor) { |
+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. |
- double dpi = (gtk_dpi > 0) ? gtk_dpi / 1024.0 : 96.0; |
+ return (gtk_dpi > 0) ? gtk_dpi / 1024.0 : 96.0; |
+} |
+ |
+// Queries GTK for its font DPI setting and returns the number of pixels in a |
+// point. |
+double GetPixelsInPoint(float device_scale_factor) { |
+ double dpi = GetDPI(); |
// Take device_scale_factor into account — if Chrome already scales the |
// entire UI up by 2x, we should not also scale up. |
@@ -1420,6 +1425,13 @@ void Gtk2UI::UpdateDeviceScaleFactor(float device_scale_factor) { |
UpdateDefaultFont(label_style->font_desc); |
} |
+float Gtk2UI::GetDeviceScaleFactor() const { |
+ const int kCSSDefaultDPI = 96; |
+ float scale = GetDPI() / kCSSDefaultDPI; |
+ // Round to 2 decimals, e.g. to 1.33. |
+ return roundf(scale * 100) / 100; |
+} |
+ |
} // namespace libgtk2ui |
views::LinuxUI* BuildGtk2UI() { |