GData *queued_settings; /* of type GtkSettingsValue* */
GtkSettingsPropertyValue *property_values;
GdkDisplay *display;
- GdkScreen *screen;
GSList *style_cascades;
GtkCssProvider *theme_provider;
GtkCssProvider *key_theme_provider;
static void gtk_settings_load_from_key_file (GtkSettings *settings,
const gchar *path,
GtkSettingsSource source);
-static void settings_update_provider (GdkScreen *screen,
+static void settings_update_provider (GdkDisplay *display,
GtkCssProvider **old,
GtkCssProvider *new);
g_datalist_clear (&priv->queued_settings);
- settings_update_provider (priv->screen, &priv->theme_provider, NULL);
- settings_update_provider (priv->screen, &priv->key_theme_provider, NULL);
+ settings_update_provider (priv->display, &priv->theme_provider, NULL);
+ settings_update_provider (priv->display, &priv->key_theme_provider, NULL);
g_slist_free_full (priv->style_cascades, g_object_unref);
if (priv->font_options)
settings = g_object_new (GTK_TYPE_SETTINGS, NULL);
settings->priv->display = display;
- settings->priv->screen = gdk_display_get_default_screen (display);
g_signal_connect_object (display, "setting-changed", G_CALLBACK (setting_changed), settings, 0);
/**
* gtk_settings_get_for_display:
- * @screen: a #GdkDisplay
+ * @screen: a #GdkDisplay.
*
* Gets the #GtkSettings object for @display, creating it if necessary.
*
GtkSettingsPrivate *priv = settings->priv;
guint property_id = pspec->param_id;
- if (priv->screen == NULL) /* initialization */
+ if (priv->display == NULL) /* initialization */
return;
switch (property_id)
case PROP_FONT_NAME:
settings_update_font_values (settings);
settings_invalidate_style (settings);
- gtk_style_context_reset_widgets (priv->screen);
+ gtk_style_context_reset_widgets (gdk_display_get_default_screen (priv->display));
break;
case PROP_KEY_THEME_NAME:
settings_update_key_theme (settings);
* widgets with gtk_widget_style_set(), and also causes more
* recomputation than necessary.
*/
- gtk_style_context_reset_widgets (priv->screen);
+ gtk_style_context_reset_widgets (gdk_display_get_default_screen (priv->display));
break;
case PROP_XFT_ANTIALIAS:
case PROP_XFT_HINTING:
case PROP_XFT_HINTSTYLE:
case PROP_XFT_RGBA:
settings_update_font_options (settings);
- gtk_style_context_reset_widgets (priv->screen);
+ gtk_style_context_reset_widgets (gdk_display_get_default_screen (priv->display));
break;
case PROP_FONTCONFIG_TIMESTAMP:
if (settings_update_fontconfig (settings))
- gtk_style_context_reset_widgets (priv->screen);
+ gtk_style_context_reset_widgets (gdk_display_get_default_screen (priv->display));
break;
case PROP_ENABLE_ANIMATIONS:
- gtk_style_context_reset_widgets (priv->screen);
+ gtk_style_context_reset_widgets (gdk_display_get_default_screen (priv->display));
break;
case PROP_CURSOR_THEME_NAME:
case PROP_CURSOR_THEME_SIZE:
static void
settings_update_cursor_theme (GtkSettings *settings)
{
+ GtkSettingsPrivate *priv = settings->priv;
gchar *theme = NULL;
gint size = 0;
-#if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WAYLAND) || defined(GDK_WINDOWING_WIN32)
- GdkDisplay *display = settings->priv->display;
-#endif
g_object_get (settings,
"gtk-cursor-theme-name", &theme,
if (theme == NULL)
return;
#ifdef GDK_WINDOWING_X11
- if (GDK_IS_X11_DISPLAY (display))
- gdk_x11_display_set_cursor_theme (display, theme, size);
+ if (GDK_IS_X11_DISPLAY (priv->display))
+ gdk_x11_display_set_cursor_theme (priv->display, theme, size);
else
#endif
#ifdef GDK_WINDOWING_WAYLAND
- if (GDK_IS_WAYLAND_DISPLAY (display))
- gdk_wayland_display_set_cursor_theme (display, theme, size);
+ if (GDK_IS_WAYLAND_DISPLAY (priv->display))
+ gdk_wayland_display_set_cursor_theme (priv->display, theme, size);
else
#endif
#ifdef GDK_WINDOWING_WIN32
- if (GDK_IS_WIN32_DISPLAY (display))
- gdk_win32_display_set_cursor_theme (display, theme, size);
+ if (GDK_IS_WIN32_DISPLAY (priv->display))
+ gdk_win32_display_set_cursor_theme (priv->display, theme, size);
else
#endif
g_warning ("GtkSettings Cursor Theme: Unsupported GDK backend");
dpi *= scale;
}
- gdk_screen_set_resolution (priv->screen, dpi);
+ gdk_screen_set_resolution (gdk_display_get_default_screen (priv->display), dpi);
}
}
static void
-settings_update_provider (GdkScreen *screen,
+settings_update_provider (GdkDisplay *display,
GtkCssProvider **old,
GtkCssProvider *new)
{
- if (screen != NULL && *old != new)
+ if (display != NULL && *old != new)
{
+ GdkScreen *screen = gdk_display_get_default_screen (display);
+
if (*old)
{
gtk_style_context_remove_provider_for_screen (screen,
if (key_theme_name && *key_theme_name)
provider = gtk_css_provider_get_named (key_theme_name, "keys");
- settings_update_provider (priv->screen, &priv->key_theme_provider, provider);
+ settings_update_provider (priv->display, &priv->key_theme_provider, provider);
g_free (key_theme_name);
}
GdkScreen *
_gtk_settings_get_screen (GtkSettings *settings)
{
- return settings->priv->screen;
+ return gdk_display_get_default_screen (settings->priv->display);
}
static void