Bug 1573813 - use parent window scale factor for the popup/tooltips; r=stransky

For popup windows with parent we need to get scale factor of the parent
window. Because when the windows are hidden they're not receiving updates
about changing scaling factor. So when moving from normal dpi to
the hidpi monitor the newly opened popup windows will have the same scale

Differential Revision: https://phabricator.services.mozilla.com/D41947

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jan Horak 2019-08-20 15:52:12 +00:00
Родитель dccf61abe4
Коммит 248e644f9e
1 изменённых файлов: 9 добавлений и 2 удалений

Просмотреть файл

@ -6576,11 +6576,18 @@ void nsWindow::SetDrawsInTitlebar(bool aState) {
}
gint nsWindow::GdkScaleFactor() {
// For popup windows with parent window we need to get scale factor of the
// parent window. Otherwise the scale factor of the popup is not updated
// during it's hidden.
GdkWindow* scaledGdkWindow = mGdkWindow;
if (mToplevelParentWindow) {
scaledGdkWindow = gtk_widget_get_window(GTK_WIDGET(mToplevelParentWindow));
}
// Available as of GTK 3.10+
static auto sGdkWindowGetScaleFactorPtr =
(gint(*)(GdkWindow*))dlsym(RTLD_DEFAULT, "gdk_window_get_scale_factor");
if (sGdkWindowGetScaleFactorPtr && mGdkWindow)
return (*sGdkWindowGetScaleFactorPtr)(mGdkWindow);
if (sGdkWindowGetScaleFactorPtr && scaledGdkWindow)
return (*sGdkWindowGetScaleFactorPtr)(scaledGdkWindow);
return ScreenHelperGTK::GetGTKMonitorScaleFactor();
}