diff --git a/widget/Screen.cpp b/widget/Screen.cpp index 7ed3203cfc78..33f50fdd596d 100644 --- a/widget/Screen.cpp +++ b/widget/Screen.cpp @@ -136,7 +136,12 @@ Screen::GetContentsScaleFactor(double *aOutScale) NS_IMETHODIMP Screen::GetDefaultCSSScaleFactor(double *aOutScale) { - *aOutScale = mDefaultCssScale.scale; + double scale = nsIWidget::DefaultScaleOverride(); + if (scale > 0.0) { + *aOutScale = scale; + } else { + *aOutScale = mDefaultCssScale.scale; + } return NS_OK; } diff --git a/widget/gtk/ScreenHelperGTK.cpp b/widget/gtk/ScreenHelperGTK.cpp index 555116ee182c..405b81178551 100644 --- a/widget/gtk/ScreenHelperGTK.cpp +++ b/widget/gtk/ScreenHelperGTK.cpp @@ -145,17 +145,17 @@ ScreenHelperGTK::GetGTKMonitorScaleFactor() static float GetDefaultCssScale() { - double scale = nsIWidget::DefaultScaleOverride(); - if (scale <= 0.0) { - scale = ScreenHelperGTK::GetGTKMonitorScaleFactor() * gfxPlatformGtk::GetDPIScale(); - } - return scale; + return ScreenHelperGTK::GetGTKMonitorScaleFactor() * gfxPlatformGtk::GetDPIScale(); } float ScreenHelperGTK::GetSystemDefaultScale() { - return GetDefaultCssScale(); + double scale = nsIWidget::DefaultScaleOverride(); + if (scale <= 0.0) { + scale = GetDefaultCssScale(); + } + return scale; } static uint32_t diff --git a/widget/windows/ScreenHelperWin.cpp b/widget/windows/ScreenHelperWin.cpp index 1a28560b18f2..00c757a067a0 100644 --- a/widget/windows/ScreenHelperWin.cpp +++ b/widget/windows/ScreenHelperWin.cpp @@ -34,10 +34,7 @@ CollectMonitors(HMONITOR aMon, HDC, LPRECT, LPARAM ioParam) } else { contentsScaleFactor.scale = scale; } - CSSToLayoutDeviceScale defaultCssScaleFactor(nsIWidget::DefaultScaleOverride()); - if (defaultCssScaleFactor.scale <= 0.0) { - defaultCssScaleFactor.scale = scale; - } + CSSToLayoutDeviceScale defaultCssScaleFactor(scale); LayoutDeviceIntRect rect(info.rcMonitor.left, info.rcMonitor.top, info.rcMonitor.right - info.rcMonitor.left, info.rcMonitor.bottom - info.rcMonitor.top);