From 05f9bc1605bdcb87018add23a615684b07edbe89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alberts=20Muktup=C4=81vels?= Date: Tue, 14 Jan 2020 19:05:51 +0200 Subject: [PATCH] pathbar: show webdav directories Currently pathbar is not updated for webdav directories and shows previous non-webdav location pathbar. The problem seems to be fact that last(?) parent is not local file in which case g_file_query_info_async returns "The specified location is not mounted" error. --- gtk/gtkpathbar.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gtk/gtkpathbar.c b/gtk/gtkpathbar.c index 37a7b05487..5b2f0cae49 100644 --- a/gtk/gtkpathbar.c +++ b/gtk/gtkpathbar.c @@ -1497,6 +1497,20 @@ gtk_path_bar_set_file_finish (struct SetFileInfo *info, g_free (info); } +static gboolean +is_local (GFile *file) +{ + gchar *path; + + path = g_file_get_path (file); + if (path == NULL) + return FALSE; + + g_free (path); + + return TRUE; +} + static void gtk_path_bar_get_info_callback (GCancellable *cancellable, GFileInfo *info, @@ -1558,6 +1572,8 @@ gtk_path_bar_get_info_callback (GCancellable *cancellable, } file_info->parent_file = g_file_get_parent (file_info->file); + if (!is_local (file_info->parent_file)) + g_clear_object (&file_info->parent_file); /* Recurse asynchronously */ priv->get_info_cancellable = _gtk_file_system_get_info (priv->file_system,