aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-09-06 21:48:33 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-09-06 21:48:33 +0800
commit80ccb990d65628a31694edc94dcc2cb1511f5d9d (patch)
treedc659b3f067d17fb86ba6a08fa98dcec4289636b
parent96020e16337fe47fe35d88db9fb2503bc213b86e (diff)
downloadgsoc2013-empathy-80ccb990d65628a31694edc94dcc2cb1511f5d9d.tar
gsoc2013-empathy-80ccb990d65628a31694edc94dcc2cb1511f5d9d.tar.gz
gsoc2013-empathy-80ccb990d65628a31694edc94dcc2cb1511f5d9d.tar.bz2
gsoc2013-empathy-80ccb990d65628a31694edc94dcc2cb1511f5d9d.tar.lz
gsoc2013-empathy-80ccb990d65628a31694edc94dcc2cb1511f5d9d.tar.xz
gsoc2013-empathy-80ccb990d65628a31694edc94dcc2cb1511f5d9d.tar.zst
gsoc2013-empathy-80ccb990d65628a31694edc94dcc2cb1511f5d9d.zip
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.
-rw-r--r--src/empathy-roster-window.c13
1 files changed, 13 insertions, 0 deletions
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
@@ -2160,6 +2160,16 @@ out:
}
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)
{
GtkBuilder *gui;
@@ -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",