diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2008-12-02 09:06:35 +0000 |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@src.gnome.org> | 2008-12-02 09:06:35 +0000 |
commit | a67611bc6aa8ccfa67c5cb054908961d5103ab8b (patch) | |
tree | a8282ae87d67fb644b13b4551808c8054f960a21 /gtk/gtkmountoperation.c | |
parent | 43c0ce8971bba8d1606a6312ee7d32d5c149042e (diff) | |
download | gtk+-a67611bc6aa8ccfa67c5cb054908961d5103ab8b.tar.gz |
Bug 562878 – password save incorrectly set in gtkmountoperation
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.
svn path=/trunk/; revision=21840
Diffstat (limited to 'gtk/gtkmountoperation.c')
-rw-r--r-- | gtk/gtkmountoperation.c | 27 |
1 files changed, 20 insertions, 7 deletions
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", |