]> git.0d.be Git - empathy.git/commitdiff
Merge branch 'gnome-3-6'
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 8 Jan 2013 11:38:01 +0000 (12:38 +0100)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 8 Jan 2013 11:38:01 +0000 (12:38 +0100)
libempathy/empathy-account-settings.c
libempathy/empathy-tp-chat.c
src/empathy-roster-window.c

index 8731479be89302c3cfe602e4ca8589d1df6c6f11..a0e42cc77c06f0ebf197787e0ea708cd0538543f 100644 (file)
@@ -1327,6 +1327,12 @@ empathy_account_settings_account_updated (GObject *source,
       goto out;
     }
 
+  update_account_uri_schemes (settings);
+  update_account_service (settings);
+
+  g_simple_async_result_set_op_res_gboolean (priv->apply_result,
+      g_strv_length (reconnect_required) > 0);
+
   /* Only set the password in the keyring if the CM supports SASL. */
   if (priv->supports_sasl)
     {
@@ -1348,12 +1354,6 @@ empathy_account_settings_account_updated (GObject *source,
       return;
     }
 
-  update_account_uri_schemes (settings);
-  update_account_service (settings);
-
-  g_simple_async_result_set_op_res_gboolean (priv->apply_result,
-      g_strv_length (reconnect_required) > 0);
-
 out:
   empathy_account_settings_discard_changes (settings);
 
index 4857243c126d89626dd76f243e89709bd944f8de..42ab0836e37f11279d016bff7c0a31cf2f282c48 100644 (file)
@@ -1298,20 +1298,12 @@ password_feature_prepare_cb (GObject *source,
 }
 
 static void
-tp_chat_prepare_ready_async (TpProxy *proxy,
-  const TpProxyFeature *feature,
-  GAsyncReadyCallback callback,
-  gpointer user_data)
+continue_preparing (EmpathyTpChat *self)
 {
-  EmpathyTpChat *self = (EmpathyTpChat *) proxy;
-  TpChannel *channel = (TpChannel *) proxy;
+  TpChannel *channel = (TpChannel *) self;
   TpConnection *connection;
   gboolean listen_for_dbus_properties_changed = FALSE;
 
-  g_assert (self->priv->ready_result == NULL);
-  self->priv->ready_result = g_simple_async_result_new (G_OBJECT (self),
-    callback, user_data, tp_chat_prepare_ready_async);
-
   connection = tp_channel_get_connection (channel);
 
   if (tp_proxy_has_interface_by_id (self,
@@ -1436,3 +1428,49 @@ tp_chat_prepare_ready_async (TpProxy *proxy,
                         G_OBJECT (self), NULL);
     }
 }
+
+static void
+conn_connected_cb (GObject *source,
+    GAsyncResult *result,
+    gpointer user_data)
+{
+  EmpathyTpChat *self = user_data;
+  GError *error = NULL;
+
+  if (!tp_proxy_prepare_finish (source, result, &error))
+    {
+      DEBUG ("Failed to prepare Connected: %s", error->message);
+      g_simple_async_result_take_error (self->priv->ready_result, error);
+      g_simple_async_result_complete (self->priv->ready_result);
+      tp_clear_object (&self->priv->ready_result);
+      return;
+    }
+
+  continue_preparing (self);
+}
+
+static void
+tp_chat_prepare_ready_async (TpProxy *proxy,
+  const TpProxyFeature *feature,
+  GAsyncReadyCallback callback,
+  gpointer user_data)
+{
+  EmpathyTpChat *self = (EmpathyTpChat *) proxy;
+  TpChannel *channel = (TpChannel *) proxy;
+  TpConnection *connection;
+  GQuark features[] = { TP_CONNECTION_FEATURE_CONNECTED, 0 };
+
+  g_assert (self->priv->ready_result == NULL);
+
+  self->priv->ready_result = g_simple_async_result_new (G_OBJECT (self),
+    callback, user_data, tp_chat_prepare_ready_async);
+
+  connection = tp_channel_get_connection (channel);
+
+  /* First we have to make sure that TP_CONNECTION_FEATURE_CONNECTED is
+   * prepared as we rely on TpConnection::self-contact
+   * in continue_preparing().
+   *
+   * It would be nice if tp-glib could do this for us: fdo#59126 */
+  tp_proxy_prepare_async (connection, features, conn_connected_cb, proxy);
+}
index a92b945f9a5cde50ab76e5d1d927abdffc749bce..38adf45faa3bd5ba1e0e014ed734ea508a2ac68e 100644 (file)
@@ -611,6 +611,7 @@ roster_window_error_create_info_bar (EmpathyRosterWindow *self,
   label = gtk_label_new (message_markup);
   gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
   gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
+  gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END);
   gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
   gtk_widget_show (label);