Fix handling of login_label connected with OPT_PROTO_REGISTER_NOSCREENNAME in account setup dialog

Tue, 03 Jul 2012 12:53:43 +0200

author
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
date
Tue, 03 Jul 2012 12:53:43 +0200
changeset 33057
26ce49409c17
parent 33056
32bace83b11e
child 33066
9ac58f35c12d

Fix handling of login_label connected with OPT_PROTO_REGISTER_NOSCREENNAME in account setup dialog

pidgin/gtkaccount.c file | annotate | diff | comparison | revisions
--- 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;

mercurial