From 80ccb990d65628a31694edc94dcc2cb1511f5d9d Mon Sep 17 00:00:00 2001
From: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Date: Thu, 6 Sep 2012 15:48:33 +0200
Subject: roster-window: update the roster page when the most available
 presence changes

Fix a race between all the contacts being removed, and so the roster
being empty, and the presence notification.
---
 src/empathy-roster-window.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

(limited to 'src')

diff --git a/src/empathy-roster-window.c b/src/empathy-roster-window.c
index cea6ac5f8..b16f23960 100644
--- a/src/empathy-roster-window.c
+++ b/src/empathy-roster-window.c
@@ -2159,6 +2159,16 @@ out:
   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)
 {
@@ -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_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",
-- 
cgit