From 24a15b51fefc49e9e68b86ed4eef37088d5d983e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 21 Oct 2022 14:41:59 -0400 Subject: [PATCH] gtk-demo: Remove deprecations from solitaire Make the solitaire game use global style providers. --- demos/gtk-demo/peg_solitaire.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/demos/gtk-demo/peg_solitaire.c b/demos/gtk-demo/peg_solitaire.c index c13ac4780f..913e521ff5 100644 --- a/demos/gtk-demo/peg_solitaire.c +++ b/demos/gtk-demo/peg_solitaire.c @@ -8,7 +8,6 @@ #include "config.h" #include -G_GNUC_BEGIN_IGNORE_DEPRECATIONS /* Create an object for the pegs that get moved around in the game. * @@ -361,6 +360,15 @@ drop_drop (GtkDropTarget *target, return TRUE; } +static void +remove_provider (gpointer data) +{ + GtkStyleProvider *provider = GTK_STYLE_PROVIDER (data); + + gtk_style_context_remove_provider_for_display (gdk_display_get_default (), provider); + g_object_unref (provider); +} + static void create_board (GtkWidget *window) { @@ -377,6 +385,9 @@ create_board (GtkWidget *window) provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, css, -1); + gtk_style_context_add_provider_for_display (gdk_display_get_default (), + GTK_STYLE_PROVIDER (provider), + 800); grid = gtk_grid_new (); gtk_widget_set_halign (grid, GTK_ALIGN_CENTER); @@ -395,9 +406,6 @@ create_board (GtkWidget *window) continue; image = gtk_image_new (); - gtk_style_context_add_provider (gtk_widget_get_style_context (image), - GTK_STYLE_PROVIDER (provider), - 800); gtk_widget_add_css_class (image, "solitaire-field"); gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE); if (x != 3 || y != 3) @@ -441,7 +449,7 @@ create_board (GtkWidget *window) } } - g_object_unref (provider); + g_object_set_data_full (G_OBJECT (window), "provider", provider, remove_provider); } static void -- 2.30.2