#include "gtkshadertoy.h"
#include "gskshaderpaintable.h"
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-
static GtkWidget *demo_window = NULL;
static void
GtkTextBuffer *buffer;
GBytes *bytes;
GtkEventController *controller;
- GtkCssProvider *provider;
GdkPaintable *paintable;
stack = gtk_shader_stack_new ();
g_signal_connect (buffer, "changed", G_CALLBACK (text_changed), button);
g_object_set_data (G_OBJECT (button), "the-stack", stack);
g_signal_connect (button, "clicked", G_CALLBACK (apply_text), buffer);
- provider = gtk_css_provider_new ();
- gtk_css_provider_load_from_data (provider, "button.small { padding: 0; }", -1);
- gtk_style_context_add_provider (gtk_widget_get_style_context (button),
- GTK_STYLE_PROVIDER (provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- g_object_unref (provider);
gtk_widget_set_halign (button, GTK_ALIGN_CENTER);
gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
gtk_widget_add_css_class (button, "small");
return vbox;
}
+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 GtkWidget *
create_gltransition_window (GtkWidget *do_widget)
{
GtkWidget *window, *headerbar, *scale, *outer_grid, *grid, *background;
GdkPaintable *paintable;
+ GtkCssProvider *provider;
window = gtk_window_new ();
gtk_window_set_display (GTK_WINDOW (window), gtk_widget_get_display (do_widget));
make_shader_stack ("Kaleidoscope", "/gltransition/kaleidoscope.glsl", 3, scale),
1, 1, 1, 1);
+ provider = gtk_css_provider_new ();
+ gtk_css_provider_load_from_data (provider, "button.small { padding: 0; }", -1);
+ gtk_style_context_add_provider_for_display (gdk_display_get_default (),
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
+ g_object_set_data_full (G_OBJECT (window), "provider", provider, remove_provider);
+
return window;
}