diff options
author | Felix Kaser <f.kaser@gmx.net> | 2009-12-14 15:18:19 +0800 |
---|---|---|
committer | Felix Kaser <f.kaser@gmx.net> | 2009-12-14 15:18:19 +0800 |
commit | 357abe46ebdc57f29037d12350c06d7fd14581b3 (patch) | |
tree | 505ad7718cf00748c314cbaf769dadaf61f57ec1 | |
parent | 0e98e5f539964a4c854c7e1b68139222e00e3e48 (diff) | |
parent | 2e7c1dd9ccb1b67b19393fdfd2fe32a2b4727f42 (diff) | |
download | gsoc2013-empathy-357abe46ebdc57f29037d12350c06d7fd14581b3.tar gsoc2013-empathy-357abe46ebdc57f29037d12350c06d7fd14581b3.tar.gz gsoc2013-empathy-357abe46ebdc57f29037d12350c06d7fd14581b3.tar.bz2 gsoc2013-empathy-357abe46ebdc57f29037d12350c06d7fd14581b3.tar.lz gsoc2013-empathy-357abe46ebdc57f29037d12350c06d7fd14581b3.tar.xz gsoc2013-empathy-357abe46ebdc57f29037d12350c06d7fd14581b3.tar.zst gsoc2013-empathy-357abe46ebdc57f29037d12350c06d7fd14581b3.zip |
Merge branch 'create-cancel-crash'
-rw-r--r-- | libempathy-gtk/empathy-account-widget.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c index c28ee75a6..05243699b 100644 --- a/libempathy-gtk/empathy-account-widget.c +++ b/libempathy-gtk/empathy-account-widget.c @@ -71,9 +71,6 @@ typedef struct { /* An EmpathyAccountWidget can be used to either create an account or * modify it. When we are creating an account, this member is set to TRUE */ gboolean creating_account; - /* If we are creating a new account, this member is set to TRUE once the - * account has been created */ - gboolean account_created; /* if TRUE, the GTK+ destroy signal has been fired and so the widgets * embedded in this account widget can't be used any more @@ -116,8 +113,6 @@ account_widget_set_control_buttons_sensitivity (EmpathyAccountWidget *self, gtk_widget_set_sensitive (priv->apply_button, sensitive); gtk_widget_set_sensitive ( priv->cancel_button, sensitive || priv->creating_account); - - priv->contains_pending_changes = sensitive; } } @@ -172,8 +167,12 @@ static void account_widget_entry_changed_cb (GtkEditable *entry, EmpathyAccountWidget *self) { + EmpathyAccountWidgetPriv *priv = GET_PRIV (self); + account_widget_entry_changed_common (self, GTK_ENTRY (entry), FALSE); account_widget_handle_control_buttons_sensitivity (self); + + priv->contains_pending_changes = TRUE; } static void @@ -215,6 +214,7 @@ account_widget_int_changed_cb (GtkWidget *widget, } account_widget_handle_control_buttons_sensitivity (self); + priv->contains_pending_changes = TRUE; } static void @@ -247,6 +247,7 @@ account_widget_checkbutton_toggled_cb (GtkWidget *widget, } account_widget_handle_control_buttons_sensitivity (self); + priv->contains_pending_changes = TRUE; } static void @@ -264,6 +265,7 @@ account_widget_forget_clicked_cb (GtkWidget *button, gtk_entry_set_text (GTK_ENTRY (priv->entry_password), ""); account_widget_handle_control_buttons_sensitivity (self); + priv->contains_pending_changes = TRUE; } static void @@ -275,6 +277,8 @@ account_widget_password_changed_cb (GtkWidget *entry, str = gtk_entry_get_text (GTK_ENTRY (entry)); gtk_widget_set_sensitive (priv->button_forget, !EMP_STR_EMPTY (str)); + + priv->contains_pending_changes = TRUE; } static void @@ -300,6 +304,8 @@ account_widget_jabber_ssl_toggled_cb (GtkWidget *checkbutton_ssl, } gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->spinbutton_port), port); + + priv->contains_pending_changes = TRUE; } static void @@ -339,6 +345,7 @@ account_widget_combobox_changed_cb (GtkWidget *widget, } account_widget_handle_control_buttons_sensitivity (self); + priv->contains_pending_changes = TRUE; } void @@ -730,7 +737,6 @@ account_widget_applied_cb (GObject *source_object, tp_account_set_enabled_async (account, TRUE, account_widget_account_enabled_cb, widget); - priv->account_created = TRUE; g_signal_emit (widget, signals[ACCOUNT_CREATED], 0); } else if (priv->enabled_checkbox != NULL) @@ -759,6 +765,8 @@ account_widget_applied_cb (GObject *source_object, if (!priv->destroyed) account_widget_set_control_buttons_sensitivity (widget, FALSE); + priv->contains_pending_changes = FALSE; + /* unref the widget - part of the workaround */ g_object_unref (widget); } @@ -1698,11 +1706,6 @@ empathy_account_widget_contains_pending_changes (EmpathyAccountWidget *widget) { EmpathyAccountWidgetPriv *priv = GET_PRIV (widget); - if (priv->creating_account && !priv->account_created) - /* We always want to warn the user if he's in the process of creating a - * new account which hasn't been actually created yet. */ - return TRUE; - return priv->contains_pending_changes; } |