# HG changeset patch # User Tomasz Wasilczyk # Date 1341312823 -7200 # Node ID 26ce49409c17b903ca4e064b08755b2d27083da6 # Parent 32bace83b11e8de60d5217e67f4df67b2fa5e24c Fix handling of login_label connected with OPT_PROTO_REGISTER_NOSCREENNAME in account setup dialog diff -r 32bace83b11e -r 26ce49409c17 pidgin/gtkaccount.c --- a/pidgin/gtkaccount.c Fri Jun 29 16:35:07 2012 +0200 +++ b/pidgin/gtkaccount.c Tue Jul 03 12:53:43 2012 +0200 @@ -307,32 +307,6 @@ } } -static void -register_button_cb(GtkWidget *checkbox, AccountPrefsDialog *dialog) -{ - int register_checked = gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(dialog->register_button)); - int opt_noscreenname = (dialog->prpl_info != NULL && - (dialog->prpl_info->options & OPT_PROTO_REGISTER_NOSCREENNAME)); - int register_noscreenname = (opt_noscreenname && register_checked); - - if (register_noscreenname) { - gtk_entry_set_text(GTK_ENTRY(dialog->username_entry), ""); - gtk_entry_set_text(GTK_ENTRY(dialog->password_entry), ""); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->remember_pass_check), FALSE); - } - gtk_widget_set_sensitive(dialog->username_entry, !register_noscreenname); - gtk_widget_set_sensitive(dialog->password_entry, !register_noscreenname); - gtk_widget_set_sensitive(dialog->remember_pass_check, !register_noscreenname); - - if (dialog->ok_button) { - gtk_widget_set_sensitive(dialog->ok_button, - (opt_noscreenname && register_checked) || - *gtk_entry_get_text(GTK_ENTRY(dialog->username_entry)) - != '\0'); - } -} - static gboolean username_nofocus_cb(GtkWidget *widget, GdkEventFocus *event, AccountPrefsDialog *dialog) { @@ -362,6 +336,33 @@ } static void +register_button_cb(GtkWidget *checkbox, AccountPrefsDialog *dialog) +{ + int register_checked = gtk_toggle_button_get_active( + GTK_TOGGLE_BUTTON(dialog->register_button)); + int opt_noscreenname = (dialog->prpl_info != NULL && + (dialog->prpl_info->options & OPT_PROTO_REGISTER_NOSCREENNAME)); + int register_noscreenname = (opt_noscreenname && register_checked); + + if (register_noscreenname) { + gtk_entry_set_text(GTK_ENTRY(dialog->username_entry), ""); + username_nofocus_cb(dialog->username_entry, NULL, dialog); + gtk_entry_set_text(GTK_ENTRY(dialog->password_entry), ""); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->remember_pass_check), FALSE); + } + gtk_widget_set_sensitive(dialog->username_entry, !register_noscreenname); + gtk_widget_set_sensitive(dialog->password_entry, !register_noscreenname); + gtk_widget_set_sensitive(dialog->remember_pass_check, !register_noscreenname); + + if (dialog->ok_button) { + gtk_widget_set_sensitive(dialog->ok_button, + (opt_noscreenname && register_checked) || + *gtk_entry_get_text(GTK_ENTRY(dialog->username_entry)) + != '\0'); + } +} + +static void icon_filesel_choose_cb(const char *filename, gpointer data) { AccountPrefsDialog *dialog = data;