[gnome-control-center] keyboard: Correctly free references when finalizing shortcut dialog



commit 3fdb5f7ab217f9a35440509c219d8161ea0da427
Author: Ian Douglas Scott <idscott system76 com>
Date:   Mon Jan 11 09:06:56 2021 -0800

    keyboard: Correctly free references when finalizing shortcut dialog

 panels/keyboard/cc-keyboard-shortcut-dialog.c | 11 +++++++++++
 1 file changed, 11 insertions(+)
---
diff --git a/panels/keyboard/cc-keyboard-shortcut-dialog.c b/panels/keyboard/cc-keyboard-shortcut-dialog.c
index 4163e324e..178ee8692 100644
--- a/panels/keyboard/cc-keyboard-shortcut-dialog.c
+++ b/panels/keyboard/cc-keyboard-shortcut-dialog.c
@@ -750,6 +750,16 @@ cc_keyboard_shortcut_dialog_constructed (GObject *object)
   gtk_window_set_transient_for (GTK_WINDOW (self->shortcut_editor), GTK_WINDOW (self));
 }
 
+static void
+cc_keyboard_shortcut_dialog_finalize (GObject *object)
+{
+  CcKeyboardShortcutDialog *self = CC_KEYBOARD_SHORTCUT_DIALOG (object);
+
+  g_clear_object (&self->manager);
+  g_clear_pointer (&self->sections, g_hash_table_destroy);
+  g_clear_pointer (&self->shortcut_editor, gtk_widget_destroy);
+}
+
 static void
 cc_keyboard_shortcut_dialog_class_init (CcKeyboardShortcutDialogClass *klass)
 {
@@ -757,6 +767,7 @@ cc_keyboard_shortcut_dialog_class_init (CcKeyboardShortcutDialogClass *klass)
   GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
   object_class->constructed = cc_keyboard_shortcut_dialog_constructed;
+  object_class->finalize = cc_keyboard_shortcut_dialog_finalize;
 
   gtk_widget_class_set_template_from_resource (widget_class, 
"/org/gnome/control-center/keyboard/cc-keyboard-shortcut-dialog.ui");
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]