diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | gtk/gtkmountoperation.c | 27 |
2 files changed, 30 insertions, 7 deletions
@@ -1,3 +1,13 @@ +2008-12-02 Carlos Garcia Campos <carlosgc@gnome.org> + + Bug 562878 – password save incorrectly set in gtkmountoperation + + * gtk/gtkmountoperation.c (remember_button_toggled), + (gtk_mount_operation_ask_password): Remember the password save + flags only when the radio button becomes active. Set also the + default state of the radio buttons depending on the current value + of password save flags. + 2008-12-01 Matthias Clasen <mclasen@redhat.com> Bug 555334 – connected server feature diff --git a/gtk/gtkmountoperation.c b/gtk/gtkmountoperation.c index b33dafcedf..9172d9ef55 100644 --- a/gtk/gtkmountoperation.c +++ b/gtk/gtkmountoperation.c @@ -252,14 +252,18 @@ gtk_mount_operation_init (GtkMountOperation *operation) } static void -remember_button_toggled (GtkWidget *widget, +remember_button_toggled (GtkToggleButton *button, GtkMountOperation *operation) { GtkMountOperationPrivate *priv = operation->priv; - gpointer data; - data = g_object_get_data (G_OBJECT (widget), "password-save"); - priv->password_save = GPOINTER_TO_INT (data); + if (gtk_toggle_button_get_active (button)) + { + gpointer data; + + data = g_object_get_data (G_OBJECT (button), "password-save"); + priv->password_save = GPOINTER_TO_INT (data); + } } static void @@ -579,15 +583,20 @@ gtk_mount_operation_ask_password (GMountOperation *mount_op, if (flags & G_ASK_PASSWORD_SAVING_SUPPORTED) { - GtkWidget *choice; - GtkWidget *remember_box; - GSList *group; + GtkWidget *choice; + GtkWidget *remember_box; + GSList *group; + GPasswordSave password_save; remember_box = gtk_vbox_new (FALSE, 6); gtk_box_pack_start (GTK_BOX (vbox), remember_box, FALSE, FALSE, 0); + password_save = g_mount_operation_get_password_save (mount_op); + choice = gtk_radio_button_new_with_mnemonic (NULL, _("Forget password _immediately")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), + password_save == G_PASSWORD_SAVE_NEVER); g_object_set_data (G_OBJECT (choice), "password-save", GINT_TO_POINTER (G_PASSWORD_SAVE_NEVER)); g_signal_connect (choice, "toggled", @@ -596,6 +605,8 @@ gtk_mount_operation_ask_password (GMountOperation *mount_op, group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (choice)); choice = gtk_radio_button_new_with_mnemonic (group, _("Remember password until you _logout")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), + password_save == G_PASSWORD_SAVE_FOR_SESSION); g_object_set_data (G_OBJECT (choice), "password-save", GINT_TO_POINTER (G_PASSWORD_SAVE_FOR_SESSION)); g_signal_connect (choice, "toggled", @@ -604,6 +615,8 @@ gtk_mount_operation_ask_password (GMountOperation *mount_op, group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (choice)); choice = gtk_radio_button_new_with_mnemonic (group, _("Remember _forever")); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (choice), + password_save == G_PASSWORD_SAVE_PERMANENTLY); g_object_set_data (G_OBJECT (choice), "password-save", GINT_TO_POINTER (G_PASSWORD_SAVE_PERMANENTLY)); g_signal_connect (choice, "toggled", |