[empathy/gnome-3-8] UOA: Do not segfault when "Done" or "Cancel" button clicked but widget is not ready yet



commit 3af2b86ec550ae1f37f25504afb95c590e7dd085
Author: Lukas Vacek <lucas vacek gmail com>
Date:   Mon Apr 1 21:28:13 2013 +0100

    UOA: Do not segfault when "Done" or "Cancel" button clicked but widget is not ready yet

 .../empathy-accounts-plugin-widget.c               |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/ubuntu-online-accounts/cc-plugins/account-plugins/empathy-accounts-plugin-widget.c 
b/ubuntu-online-accounts/cc-plugins/account-plugins/empathy-accounts-plugin-widget.c
index 28b4716..f908159 100644
--- a/ubuntu-online-accounts/cc-plugins/account-plugins/empathy-accounts-plugin-widget.c
+++ b/ubuntu-online-accounts/cc-plugins/account-plugins/empathy-accounts-plugin-widget.c
@@ -147,6 +147,12 @@ response_cb (GtkWidget *widget,
     gint response,
     EmpathyAccountsPluginWidget *self)
 {
+  if (!self->priv->account_widget)
+    {
+      // widget might not be ready yet
+      g_signal_emit (self, signals[SIG_DONE], 0);
+      return;
+    }
   if (response == GTK_RESPONSE_OK)
     {
       empathy_account_widget_apply_and_log_in (self->priv->account_widget);
@@ -279,8 +285,8 @@ maybe_add_account_widget (EmpathyAccountsPluginWidget *self)
     }
   else
     {
-      g_signal_connect_swapped (self->priv->settings, "notify::ready",
-          G_CALLBACK (add_account_widget), self);
+      tp_g_signal_connect_object (self->priv->settings, "notify::ready",
+          G_CALLBACK (add_account_widget), self, G_CONNECT_SWAPPED);
     }
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]