summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtkfilechooserwidget.c6
-rw-r--r--gtk/gtkfilesystemmodel.c11
-rw-r--r--gtk/gtkpathbar.c3
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,