]> git.0d.be Git - empathy.git/commitdiff
roster-window: update the roster page when the most available presence changes
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 6 Sep 2012 13:48:33 +0000 (15:48 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 6 Sep 2012 13:48:33 +0000 (15:48 +0200)
Fix a race between all the contacts being removed, and so the roster
being empty, and the presence notification.

src/empathy-roster-window.c

index cea6ac5f825e06e352d131a96b6bcdcbe10b1128..b16f23960f64f7da7f25ac3f1f2d6cc910fab99c 100644 (file)
@@ -2159,6 +2159,16 @@ out:
   gtk_drag_finish (context, success, FALSE, time_);
 }
 
   gtk_drag_finish (context, success, FALSE, time_);
 }
 
+static void
+roster_window_most_available_presence_changed_cb (TpAccountManager *manager,
+    TpConnectionPresenceType presence,
+    const gchar *status,
+    const gchar *message,
+    EmpathyRosterWindow *self)
+{
+  set_notebook_page (self);
+}
+
 static void
 empathy_roster_window_init (EmpathyRosterWindow *self)
 {
 static void
 empathy_roster_window_init (EmpathyRosterWindow *self)
 {
@@ -2350,6 +2360,9 @@ empathy_roster_window_init (EmpathyRosterWindow *self)
       G_CALLBACK (roster_window_account_removed_cb), self);
   g_signal_connect (self->priv->account_manager, "account-disabled",
       G_CALLBACK (roster_window_account_disabled_cb), self);
       G_CALLBACK (roster_window_account_removed_cb), self);
   g_signal_connect (self->priv->account_manager, "account-disabled",
       G_CALLBACK (roster_window_account_disabled_cb), self);
+  g_signal_connect (self->priv->account_manager,
+      "most-available-presence-changed",
+      G_CALLBACK (roster_window_most_available_presence_changed_cb), self);
 
   g_settings_bind (self->priv->gsettings_ui, EMPATHY_PREFS_UI_SHOW_OFFLINE,
       self->priv->view, "show-offline",
 
   g_settings_bind (self->priv->gsettings_ui, EMPATHY_PREFS_UI_SHOW_OFFLINE,
       self->priv->view, "show-offline",