Author: mccann
Date: Fri Feb  8 17:13:33 2008
New Revision: 5737
URL: http://svn.gnome.org/viewvc/gdm?rev=5737&view=rev

Log:
2008-02-08  William Jon McCann  <[EMAIL PROTECTED]>

        * gui/simple-greeter/gdm-a11y-preferences-dialog.c: (setup_dialog),
        (gdm_a11y_preferences_dialog_finalize):
        Disconnect gconf notify callbacks.



Modified:
   trunk/ChangeLog
   trunk/gui/simple-greeter/gdm-a11y-preferences-dialog.c

Modified: trunk/gui/simple-greeter/gdm-a11y-preferences-dialog.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-a11y-preferences-dialog.c      (original)
+++ trunk/gui/simple-greeter/gdm-a11y-preferences-dialog.c      Fri Feb  8 
17:13:33 2008
@@ -63,6 +63,8 @@
 struct GdmA11yPreferencesDialogPrivate
 {
         GladeXML *xml;
+        guint     a11y_dir_cnxn;
+        guint     gdm_a11y_dir_cnxn;
 };
 
 enum {
@@ -721,23 +723,23 @@
                               KEY_A11Y_DIR,
                               GCONF_CLIENT_PRELOAD_ONELEVEL,
                               NULL);
-        gconf_client_notify_add (client,
-                                 KEY_A11Y_DIR,
-                                 (GConfClientNotifyFunc)key_changed_cb,
-                                 dialog,
-                                 NULL,
-                                 NULL);
+        dialog->priv->a11y_dir_cnxn = gconf_client_notify_add (client,
+                                                               KEY_A11Y_DIR,
+                                                               
(GConfClientNotifyFunc)key_changed_cb,
+                                                               dialog,
+                                                               NULL,
+                                                               NULL);
 
         gconf_client_add_dir (client,
                               KEY_GDM_A11Y_DIR,
                               GCONF_CLIENT_PRELOAD_ONELEVEL,
                               NULL);
-        gconf_client_notify_add (client,
-                                 KEY_GDM_A11Y_DIR,
-                                 (GConfClientNotifyFunc)key_changed_cb,
-                                 dialog,
-                                 NULL,
-                                 NULL);
+        dialog->priv->gdm_a11y_dir_cnxn = gconf_client_notify_add (client,
+                                                                   
KEY_GDM_A11Y_DIR,
+                                                                   
(GConfClientNotifyFunc)key_changed_cb,
+                                                                   dialog,
+                                                                   NULL,
+                                                                   NULL);
         g_object_unref (client);
 }
 
@@ -778,14 +780,26 @@
 static void
 gdm_a11y_preferences_dialog_finalize (GObject *object)
 {
-        GdmA11yPreferencesDialog *a11y_preferences_dialog;
+        GdmA11yPreferencesDialog *dialog;
+        GConfClient *client;
 
         g_return_if_fail (object != NULL);
         g_return_if_fail (GDM_IS_A11Y_PREFERENCES_DIALOG (object));
 
-        a11y_preferences_dialog = GDM_A11Y_PREFERENCES_DIALOG (object);
+        dialog = GDM_A11Y_PREFERENCES_DIALOG (object);
+
+        g_return_if_fail (dialog->priv != NULL);
+
+        client = gconf_client_get_default ();
 
-        g_return_if_fail (a11y_preferences_dialog->priv != NULL);
+        if (dialog->priv->a11y_dir_cnxn > 0) {
+                gconf_client_notify_remove (client, 
dialog->priv->a11y_dir_cnxn);
+        }
+        if (dialog->priv->gdm_a11y_dir_cnxn > 0) {
+                gconf_client_notify_remove (client, 
dialog->priv->gdm_a11y_dir_cnxn);
+        }
+
+        g_object_unref (client);
 
         G_OBJECT_CLASS (gdm_a11y_preferences_dialog_parent_class)->finalize 
(object);
 }
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to