]> git.0d.be Git - empathy.git/commitdiff
connect to val-changed signal in contact manager
authorFelix Kaser <f.kaser@gmx.net>
Mon, 28 Dec 2009 13:39:57 +0000 (14:39 +0100)
committerFelix Kaser <f.kaser@gmx.net>
Mon, 11 Jan 2010 14:03:26 +0000 (15:03 +0100)
new accounts have to be registered for status-changed signals, that can only be done if the account-validity-changed signal is handled.
fixes bug #604628

libempathy/empathy-contact-manager.c

index ce77d273b96bc0b0f0f6f87a0d3853d68f4e0bf3..ee3b70516aeb413d014d36d9493c54020a2879d0 100644 (file)
@@ -175,6 +175,19 @@ contact_manager_status_changed_cb (TpAccount *account,
                          self);
 }
 
+static void
+contact_manager_validity_changed_cb (TpAccountManager *account_manager,
+                                    TpAccount *account,
+                                    gboolean valid,
+                                    EmpathyContactManager *manager)
+{
+       if (valid) {
+               empathy_signal_connect_weak (account, "status-changed",
+                           G_CALLBACK (contact_manager_status_changed_cb),
+                           G_OBJECT (manager));
+       }
+}
+
 static void
 contact_manager_finalize (GObject *object)
 {
@@ -272,6 +285,10 @@ account_manager_prepared_cb (GObject *source_object,
                    G_OBJECT (manager));
        }
        g_list_free (accounts);
+
+       empathy_signal_connect_weak (account_manager, "account-validity-changed",
+                            G_CALLBACK (contact_manager_validity_changed_cb),
+                            G_OBJECT (manager));
 }
 
 static void