aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRob Bradford <rob@linux.intel.com>2010-06-02 19:47:34 +0800
committerRob Bradford <rob@linux.intel.com>2010-06-03 21:50:08 +0800
commitff6007612e6560514dbd6a5a581475d72de8c29d (patch)
tree9ee2bf2e0818e9e0d56aaf6c1338e1d3605fe7b8
parent7d4202aa8e193c22e9cc3871fbc384454cb734ef (diff)
downloadgsoc2013-empathy-ff6007612e6560514dbd6a5a581475d72de8c29d.tar
gsoc2013-empathy-ff6007612e6560514dbd6a5a581475d72de8c29d.tar.gz
gsoc2013-empathy-ff6007612e6560514dbd6a5a581475d72de8c29d.tar.bz2
gsoc2013-empathy-ff6007612e6560514dbd6a5a581475d72de8c29d.tar.lz
gsoc2013-empathy-ff6007612e6560514dbd6a5a581475d72de8c29d.tar.xz
gsoc2013-empathy-ff6007612e6560514dbd6a5a581475d72de8c29d.tar.zst
gsoc2013-empathy-ff6007612e6560514dbd6a5a581475d72de8c29d.zip
accounts-dialog: Ensure correct connectivity information
Move the creation of the EmpathyConnectivity object to the dialog construction so that there is time for the asynchronous calls that the EmpathyConnectivity makes (in ConnMan mode) to return. Without this change the error is always reported as network connection failure rather than the real error when built with ConnMan. Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=620474
-rw-r--r--src/empathy-accounts-dialog.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 649df9d61..2acac45a5 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -112,6 +112,7 @@ typedef struct {
TpAccountManager *account_manager;
EmpathyConnectionManagers *cms;
+ EmpathyConnectivity *connectivity;
GtkWindow *parent_window;
TpAccount *initial_selection;
@@ -200,7 +201,6 @@ accounts_dialog_update_status_infobar (EmpathyAccountsDialog *dialog,
guint status;
guint reason;
guint presence;
- EmpathyConnectivity *connectivity;
GtkTreeView *view;
GtkTreeModel *model;
GtkTreeSelection *selection;
@@ -302,11 +302,9 @@ accounts_dialog_update_status_infobar (EmpathyAccountsDialog *dialog,
GTK_MESSAGE_ERROR);
}
- connectivity = empathy_connectivity_dup_singleton ();
- if (!empathy_connectivity_is_online (connectivity))
+ if (!empathy_connectivity_is_online (priv->connectivity))
message = _("Offline — No Network Connection");
- g_object_unref (connectivity);
gtk_spinner_stop (GTK_SPINNER (priv->throbber));
gtk_widget_show (priv->image_status);
gtk_widget_hide (priv->throbber);
@@ -2138,6 +2136,12 @@ do_dispose (GObject *obj)
priv->cms = NULL;
}
+ if (priv->connectivity)
+ {
+ g_object_unref (priv->connectivity);
+ priv->connectivity = NULL;
+ }
+
if (priv->initial_selection != NULL)
g_object_unref (priv->initial_selection);
priv->initial_selection = NULL;
@@ -2222,6 +2226,8 @@ do_constructed (GObject *object)
gtk_widget_show (import_dialog);
}
}
+
+ priv->connectivity = empathy_connectivity_dup_singleton ();
}
static void