Bug 1439857 - Fix too big fonts when devPixelsPerPx is set; r?stransky
This fixes regression introduced by hidpi support for wayland in
case devPixelsPerPx is set (
bug 1431337).
MozReview-Commit-ID: DOh0aTcxbVG
--- a/browser/base/content/test/performance/hidpi/browser.ini
+++ b/browser/base/content/test/performance/hidpi/browser.ini
@@ -1,6 +1,6 @@
[DEFAULT]
prefs =
layout.css.devPixelsPerPx='2'
[../browser_startup_images.js]
-skip-if = !debug || ((os == 'win' && (os_version == '6.1')) || os == 'linux') # hidpi results in the toolbar overflowing on Win 7 and Linux
+skip-if = !debug || (os == 'win' && (os_version == '6.1')) # hidpi results in the toolbar overflowing on Win 7
--- a/widget/gtk/nsLookAndFeel.cpp
+++ b/widget/gtk/nsLookAndFeel.cpp
@@ -785,17 +785,17 @@ nsLookAndFeel::GetFontImpl(FontID aID, n
default:
aFontName = mDefaultFontName;
aFontStyle = mDefaultFontStyle;
break;
}
// Scale the font for the current monitor
double scaleFactor = nsIWidget::DefaultScaleOverride();
if (scaleFactor > 0) {
- aFontStyle.size *= aDevPixPerCSSPixel;
+ aFontStyle.size *= mozilla::widget::ScreenHelperGTK::GetGTKMonitorScaleFactor();
} else {
// Remove effect of font scale because it has been already applied in
// GetSystemFontInfo
aFontStyle.size *= aDevPixPerCSSPixel / gfxPlatformGtk::GetFontScaleFactor();
}
return true;
}
--- a/widget/gtk/nsNativeThemeGTK.cpp
+++ b/widget/gtk/nsNativeThemeGTK.cpp
@@ -74,18 +74,18 @@ GetMonitorScaleFactor(nsIFrame* aFrame)
// We need to use GetDefaultScale() despite it returns monitor scale
// factor multiplied by font scale factor because it is the only scale
// updated in nsPuppetWidget.
// Since we don't want to apply font scale factor for UI elements
// (because GTK does not do so) we need to remove that from returned value.
return rootWidget->GetDefaultScale().scale / gfxPlatformGtk::GetFontScaleFactor();
}
}
- // We cannot return zero scale because that would lead to divide by zero
- return (scale < 1) ? 1 : int(round(scale));
+ // Use monitor scaling factor where devPixelsPerPx is set
+ return ScreenHelperGTK::GetGTKMonitorScaleFactor();
}
nsNativeThemeGTK::nsNativeThemeGTK()
{
if (moz_gtk_init() != MOZ_GTK_SUCCESS) {
memset(mDisabledWidgetTypes, 0xff, sizeof(mDisabledWidgetTypes));
return;
}