mirror of
https://github.com/brl/mutter.git
synced 2025-01-25 10:58:55 +00:00
selection: Unref selection owners on dispose
Selection owners are set using g_set_object, which adds a reference to the owner, which then never was removed on shutdown. Fixes parts of https://gitlab.gnome.org/GNOME/mutter/issues/1006 https://gitlab.gnome.org/GNOME/mutter/merge_requests/1001
This commit is contained in:
parent
c05019e232
commit
35316a034f
@ -50,9 +50,27 @@ static guint signals[N_SIGNALS] = { 0 };
|
|||||||
|
|
||||||
G_DEFINE_TYPE (MetaSelection, meta_selection, G_TYPE_OBJECT)
|
G_DEFINE_TYPE (MetaSelection, meta_selection, G_TYPE_OBJECT)
|
||||||
|
|
||||||
|
static void
|
||||||
|
meta_selection_dispose (GObject *object)
|
||||||
|
{
|
||||||
|
MetaSelection *selection = META_SELECTION (object);
|
||||||
|
guint i;
|
||||||
|
|
||||||
|
for (i = 0; i < META_N_SELECTION_TYPES; i++)
|
||||||
|
{
|
||||||
|
g_clear_object (&selection->owners[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
G_OBJECT_CLASS (meta_selection_parent_class)->dispose (object);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_selection_class_init (MetaSelectionClass *klass)
|
meta_selection_class_init (MetaSelectionClass *klass)
|
||||||
{
|
{
|
||||||
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
|
|
||||||
|
object_class->dispose = meta_selection_dispose;
|
||||||
|
|
||||||
signals[OWNER_CHANGED] =
|
signals[OWNER_CHANGED] =
|
||||||
g_signal_new ("owner-changed",
|
g_signal_new ("owner-changed",
|
||||||
G_TYPE_FROM_CLASS (klass),
|
G_TYPE_FROM_CLASS (klass),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user