gtkplacessidebar: clean up trash row on destroy

Track with a weak ref the trash row, so we can clean up the data in the
private struct.

Spotted and reviewed by Christian Hergert.
This commit is contained in:
Carlos Soriano 2016-02-26 11:01:38 +01:00
parent c3e56d3d83
commit 377ac909b7

View File

@ -994,6 +994,7 @@ update_places (GtkPlacesSidebar *sidebar)
_("Trash"), icon, mount_uri,
NULL, NULL, NULL, 0,
_("Open the trash"));
g_object_add_weak_pointer (G_OBJECT (sidebar->trash_row), &sidebar->trash_row);
g_object_unref (icon);
}
@ -4041,6 +4042,12 @@ gtk_places_sidebar_dispose (GObject *object)
g_clear_object (&sidebar->trash_monitor);
}
if (sidebar->trash_row)
{
g_object_remove_weak_pointer (G_OBJECT (sidebar->trash_row), &sidebar->trash_row);
sidebar->trash_row = NULL;
}
if (sidebar->volume_monitor != NULL)
{
g_signal_handlers_disconnect_by_func (sidebar->volume_monitor,