summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2017-10-30 22:02:35 +0100
committerBenjamin Otte <otte@redhat.com>2017-10-31 00:42:32 +0100
commit59cfd56365bf558e612ef6c8431d799a4767155f (patch)
tree0ef90710283817846060a59c40c9838742def0d3 /gtk
parent9e5f4f94b3bc25352d81b6531a6e6c49a80ee1e9 (diff)
downloadgtk+-59cfd56365bf558e612ef6c8431d799a4767155f.tar.gz
settings: Don't store the screen in the settings object
Screens are going away. Code that still needs the screen just gets it from the display.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtksettings.c50
1 files changed, 24 insertions, 26 deletions
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index 0426ab46db..67827d34d9 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -119,7 +119,6 @@ struct _GtkSettingsPrivate
GData *queued_settings; /* of type GtkSettingsValue* */
GtkSettingsPropertyValue *property_values;
GdkDisplay *display;
- GdkScreen *screen;
GSList *style_cascades;
GtkCssProvider *theme_provider;
GtkCssProvider *key_theme_provider;
@@ -230,7 +229,7 @@ static void settings_update_xsettings (GtkSettings *setting
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);
@@ -1105,8 +1104,8 @@ gtk_settings_finalize (GObject *object)
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)
@@ -1229,7 +1228,6 @@ gtk_settings_create_for_display (GdkDisplay *display)
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);
@@ -1249,7 +1247,7 @@ gtk_settings_create_for_display (GdkDisplay *display)
/**
* gtk_settings_get_for_display:
- * @screen: a #GdkDisplay
+ * @screen: a #GdkDisplay.
*
* Gets the #GtkSettings object for @display, creating it if necessary.
*
@@ -1382,7 +1380,7 @@ gtk_settings_notify (GObject *object,
GtkSettingsPrivate *priv = settings->priv;
guint property_id = pspec->param_id;
- if (priv->screen == NULL) /* initialization */
+ if (priv->display == NULL) /* initialization */
return;
switch (property_id)
@@ -1397,7 +1395,7 @@ gtk_settings_notify (GObject *object,
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);
@@ -1412,21 +1410,21 @@ gtk_settings_notify (GObject *object,
* 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:
@@ -2128,11 +2126,9 @@ settings_update_modules (GtkSettings *settings)
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,
@@ -2141,18 +2137,18 @@ settings_update_cursor_theme (GtkSettings *settings)
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");
@@ -2314,17 +2310,19 @@ settings_update_resolution (GtkSettings *settings)
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,
@@ -2428,7 +2426,7 @@ settings_update_key_theme (GtkSettings *settings)
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);
}
@@ -2441,7 +2439,7 @@ gtk_settings_get_font_options (GtkSettings *settings)
GdkScreen *
_gtk_settings_get_screen (GtkSettings *settings)
{
- return settings->priv->screen;
+ return gdk_display_get_default_screen (settings->priv->display);
}
static void