aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-09-06 22:25:23 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-09-06 22:25:38 +0800
commit8af24addff899127fc433e0e4233cd568bd2ab1c (patch)
treed21fb143855def4a6713ef875860c20af93bd33e /src
parentf6a74bbbfd94d2bb6eef27e7e2b5f5cb45927371 (diff)
downloadgsoc2013-empathy-8af24addff899127fc433e0e4233cd568bd2ab1c.tar.gz
gsoc2013-empathy-8af24addff899127fc433e0e4233cd568bd2ab1c.tar.zst
gsoc2013-empathy-8af24addff899127fc433e0e4233cd568bd2ab1c.zip
roster-window: display loading page when reconnecting accounts
https://bugzilla.gnome.org/show_bug.cgi?id=683501
Diffstat (limited to 'src')
-rw-r--r--src/empathy-roster-window.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/empathy-roster-window.c b/src/empathy-roster-window.c
index cbe4300e5..e36bf769e 100644
--- a/src/empathy-roster-window.c
+++ b/src/empathy-roster-window.c
@@ -927,6 +927,8 @@ roster_window_remove_balance_action (EmpathyRosterWindow *self,
gtk_widget_destroy (hbox);
}
+static void set_notebook_page (EmpathyRosterWindow *self);
+
static void
roster_window_connection_changed_cb (TpAccount *account,
guint old_status,
@@ -937,6 +939,7 @@ roster_window_connection_changed_cb (TpAccount *account,
EmpathyRosterWindow *self)
{
roster_window_update_status (self);
+ set_notebook_page (self);
if (current == TP_CONNECTION_STATUS_DISCONNECTED &&
reason != TP_CONNECTION_STATUS_REASON_REQUESTED)
@@ -1590,9 +1593,17 @@ set_notebook_page (EmpathyRosterWindow *self)
GList *accounts;
guint len;
TpConnectionPresenceType presence;
+ gboolean connected, connecting;
+ connected = empathy_account_manager_get_accounts_connected (&connecting);
+
+ /* Display the loading page if either:
+ * - We are fetching contacts from Folks (startup)
+ * - There is no account connected but at least one is connecting
+ */
if (!empathy_individual_manager_get_contacts_loaded (
- self->priv->individual_manager))
+ self->priv->individual_manager) ||
+ (!connected && connecting))
{
display_page_message (self, NULL, PAGE_MESSAGE_FLAG_SPINNER);
gtk_spinner_start (GTK_SPINNER (self->priv->spinner_loading));