diff --git a/gtk/gtkfilechoosernative.c b/gtk/gtkfilechoosernative.c index cfa274f4f1..cf1d97b31d 100644 --- a/gtk/gtkfilechoosernative.c +++ b/gtk/gtkfilechoosernative.c @@ -466,6 +466,7 @@ gtk_file_chooser_native_set_property (GObject *object, case GTK_FILE_CHOOSER_PROP_FILTER: self->current_filter = g_value_get_object (value); + gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (self->dialog), self->current_filter); g_object_notify (G_OBJECT (self), "filter"); break; diff --git a/gtk/gtkfilechoosernativeportal.c b/gtk/gtkfilechoosernativeportal.c index f22d734f5a..07cbb5b4bc 100644 --- a/gtk/gtkfilechoosernativeportal.c +++ b/gtk/gtkfilechoosernativeportal.c @@ -332,10 +332,13 @@ show_portal_file_chooser (GtkFileChooserNative *self, g_variant_builder_add (&opt_builder, "{sv}", "modal", g_variant_new_boolean (data->modal)); g_variant_builder_add (&opt_builder, "{sv}", "filters", get_filters (GTK_FILE_CHOOSER (self))); - if (GTK_FILE_CHOOSER_NATIVE (self)->current_name) + if (self->current_filter) + g_variant_builder_add (&opt_builder, "{sv}", "current_filter", + gtk_file_filter_to_gvariant (self->current_filter)); + if (self->current_name) g_variant_builder_add (&opt_builder, "{sv}", "current_name", g_variant_new_string (GTK_FILE_CHOOSER_NATIVE (self)->current_name)); - if (GTK_FILE_CHOOSER_NATIVE (self)->current_folder) + if (self->current_folder) { gchar *path; @@ -344,7 +347,7 @@ show_portal_file_chooser (GtkFileChooserNative *self, g_variant_new_bytestring (path)); g_free (path); } - if (GTK_FILE_CHOOSER_NATIVE (self)->current_file) + if (self->current_file) { gchar *path; @@ -354,7 +357,7 @@ show_portal_file_chooser (GtkFileChooserNative *self, g_free (path); } - if (GTK_FILE_CHOOSER_NATIVE (self)->choices) + if (self->choices) g_variant_builder_add (&opt_builder, "{sv}", "choices", serialize_choices (GTK_FILE_CHOOSER_NATIVE (self)));