diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-09-18 03:59:52 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-09-18 03:59:52 +0000 |
commit | 155e0f3dfb679731c8d5a2302ab47ca632ab0f55 (patch) | |
tree | a43a205be244844a27ce7c83019521c3f9699194 | |
parent | 7f2cb1138a8eb80ad9ef8813ffa553a581259f5f (diff) | |
parent | 02bb23486fa40e9a3e37097c2e1ca0a70ba193ab (diff) | |
download | gtk+-155e0f3dfb679731c8d5a2302ab47ca632ab0f55.tar.gz |
Merge branch 'gbsneto/fix-filechooserwidget-choices' into 'master'
File chooser choice fixes
See merge request GNOME/gtk!3973
-rw-r--r-- | gtk/gtkfilechooserwidget.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 47252e4947..a2310f35d8 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -8028,15 +8028,15 @@ gtk_file_chooser_widget_set_choice (GtkFileChooser *chooser, if (GTK_IS_BOX (widget)) { guint i; - const char **choices; + const char **options; GtkWidget *dropdown; dropdown = gtk_widget_get_last_child (widget); - choices = (const char **) g_object_get_data (G_OBJECT (dropdown), "choices"); - for (i = 0; choices[i]; i++) + options = (const char **) g_object_get_data (G_OBJECT (dropdown), "options"); + for (i = 0; options[i]; i++) { - if (strcmp (option, choices[i]) == 0) + if (strcmp (option, options[i]) == 0) { gtk_drop_down_set_selected (GTK_DROP_DOWN (dropdown), i); break; @@ -8060,10 +8060,13 @@ gtk_file_chooser_widget_get_choice (GtkFileChooser *chooser, widget = (GtkWidget *)g_hash_table_lookup (impl->choices, id); if (GTK_IS_DROP_DOWN (widget)) { - gpointer selected = gtk_drop_down_get_selected_item (GTK_DROP_DOWN (widget)); - if (GTK_IS_STRING_OBJECT (selected)) - return gtk_string_object_get_string (GTK_STRING_OBJECT (selected)); - return NULL; + const char **options; + guint selected; + + options = (const char **) g_object_get_data (G_OBJECT (widget), "options"); + selected = gtk_drop_down_get_selected (GTK_DROP_DOWN (widget)); + + return options[selected]; } else if (GTK_IS_CHECK_BUTTON (widget)) { |