diff options
-rw-r--r-- | gtk/gtkfilechooserwidget.c | 6 | ||||
-rw-r--r-- | gtk/gtkfilesystemmodel.c | 11 | ||||
-rw-r--r-- | gtk/gtkpathbar.c | 3 |
3 files changed, 15 insertions, 5 deletions
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 0496fd2f35..ab531f7eb6 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -4634,10 +4634,12 @@ show_and_select_files (GtkFileChooserWidget *impl, if (!_gtk_file_system_model_iter_is_visible (fsmodel, &iter)) { GFileInfo *info = _gtk_file_system_model_get_info (fsmodel, &iter); + gboolean has_is_hidden = g_file_info_has_attribute (info, "standard::is-hidden"); + gboolean has_is_backup = g_file_info_has_attribute (info, "standard::is-backup"); if (!enabled_hidden && - (g_file_info_get_is_hidden (info) || - g_file_info_get_is_backup (info))) + ((has_is_hidden && g_file_info_get_is_hidden (info)) || + (has_is_backup && g_file_info_get_is_backup (info)))) { g_object_set (impl, "show-hidden", TRUE, NULL); enabled_hidden = TRUE; diff --git a/gtk/gtkfilesystemmodel.c b/gtk/gtkfilesystemmodel.c index 0fa44536d9..0309c747bd 100644 --- a/gtk/gtkfilesystemmodel.c +++ b/gtk/gtkfilesystemmodel.c @@ -442,16 +442,23 @@ node_should_be_filtered_out (GtkFileSystemModel *model, guint id) } static gboolean -node_should_be_visible (GtkFileSystemModel *model, guint id, gboolean filtered_out) +node_should_be_visible (GtkFileSystemModel *model, + guint id, + gboolean filtered_out) { FileModelNode *node = get_node (model, id); + gboolean has_is_hidden, has_is_backup; gboolean result; if (node->info == NULL) return FALSE; + has_is_hidden = g_file_info_has_attribute (node->info, "standard::is-hidden"); + has_is_backup = g_file_info_has_attribute (node->info, "standard::is-backup"); + if (!model->show_hidden && - (g_file_info_get_is_hidden (node->info) || g_file_info_get_is_backup (node->info))) + ((has_is_hidden && g_file_info_get_is_hidden (node->info)) || + (has_is_backup && g_file_info_get_is_backup (node->info)))) return FALSE; if (_gtk_file_info_consider_as_directory (node->info)) diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c index 99d5282888..8b1608c223 100644 --- a/gtk/gtkpathbar.c +++ b/gtk/gtkpathbar.c @@ -1762,7 +1762,8 @@ gtk_path_bar_get_info_callback (GCancellable *cancellable, } display_name = g_file_info_get_display_name (info); - is_hidden = g_file_info_get_is_hidden (info) || g_file_info_get_is_backup (info); + is_hidden = g_file_info_get_attribute_boolean (info, "standard::is-hidden") || + g_file_info_get_attribute_boolean (info, "standard::is-backup"); button_data = make_directory_button (file_info->path_bar, display_name, file_info->file, |