application: don't remove providers from screen when finalizing

When finalizing the application, it is possible that the main window
had already been destroyed and the Gtk+ CSS machinery to stop working.
We currently try to remove the CSS providers from screen when finalizing,
which (i) has no effect, and (ii) causes a segfault.

Fix that by simply destroying the CSS providers, and not trying to
remove them on finalize.

https://bugzilla.gnome.org/show_bug.cgi?id=773871
This commit is contained in:
Georges Basile Stavracas Neto
2017-02-09 11:09:40 -02:00
parent 6ce45743c6
commit 0ce04c0eeb
+1 -8
View File
@@ -207,15 +207,8 @@ gcal_application_finalize (GObject *object)
g_free (self->uuid);
g_clear_pointer (&self->initial_date, g_free);
if (self->provider != NULL)
{
gtk_style_context_remove_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (self->colors_provider));
gtk_style_context_remove_provider_for_screen (gdk_screen_get_default (), GTK_STYLE_PROVIDER (self->provider));
g_clear_object (&(self->provider));
}
g_clear_object (&self->colors_provider);
g_clear_object (&(self->provider));
g_clear_object (&self->settings);
g_clear_object (&self->manager);