# HG changeset patch # User Luke Schierer # Date 1134166064 0 # Node ID 17d22e9367a8cc367ef197be3c6fda1a02f37795 # Parent de7f34c005ce91b0ad5fd9c84ab8aba37c29fcd7 [gaim-migrate @ 14753] " Luke asked me to write this patch, to disable the password entry box unless the "save password" checkbox is active (this prevents gaim from re-asking for a password immediately after typing it into the new account box). This patch is indented wrong, but I didn't want to screw my editor up just to make tabs for 5 lines. It also adds a callback function, which is the "bulk" of the patch - I assume that this callback function Just Goes Away when the toggle button is no longer around, but I don't know this for sure... I think that's all of the disclaimers I have for this code. It Worked For Me. :-)" -- Joshua T. Blanton committer: Tailor Script diff -r de7f34c005ce -r 17d22e9367a8 src/gtkaccount.c --- a/src/gtkaccount.c Fri Dec 09 15:01:55 2005 +0000 +++ b/src/gtkaccount.c Fri Dec 09 22:07:44 2005 +0000 @@ -708,6 +708,18 @@ #endif } +/* This function is required to toggle the usability of the password entry + * box - it is set as a callback for the "Save Password" checkbox */ +void toggle_password_visibility(GtkWidget *button, gpointer pwd_entry) +{ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))) { + gtk_widget_set_sensitive(pwd_entry, TRUE); + } else { + gtk_widget_set_sensitive(pwd_entry, FALSE); + } + gtk_widget_show(pwd_entry); +} + static void add_login_options(AccountPrefsDialog *dialog, GtkWidget *parent) { @@ -818,6 +830,7 @@ dialog->password_entry = gtk_entry_new(); gtk_entry_set_visibility(GTK_ENTRY(dialog->password_entry), FALSE); gtk_entry_set_invisible_char(GTK_ENTRY(dialog->password_entry), GAIM_INVISIBLE_CHAR); + gtk_widget_set_sensitive(dialog->password_entry, FALSE); dialog->password_box = add_pref_box(dialog, vbox, _("Password:"), dialog->password_entry); @@ -830,6 +843,9 @@ gtk_check_button_new_with_label(_("Remember password")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dialog->remember_pass_check), FALSE); + g_signal_connect(G_OBJECT(dialog->remember_pass_check), "toggled", + G_CALLBACK(toggle_password_visibility), + (gpointer)dialog->password_entry); gtk_box_pack_start(GTK_BOX(vbox), dialog->remember_pass_check, FALSE, FALSE, 0); gtk_widget_show(dialog->remember_pass_check);