Allow resolving absolute paths even if there is no base_folder

This lets us do proper completion in GtkFileChooserEntry even when no base folder
has been set.  Completion for relative paths won't work, as usual, as expected.
This commit is contained in:
Federico Mena Quintero 2011-06-29 18:20:53 -05:00
parent 1af579b1a2
commit ae42f286bb
2 changed files with 15 additions and 3 deletions

View File

@ -1563,7 +1563,6 @@ refresh_current_folder_and_file_part (GtkFileChooserEntry *chooser_entry,
error = NULL;
if (!chooser_entry->file_system ||
!chooser_entry->base_folder ||
!_gtk_file_system_parse (chooser_entry->file_system,
chooser_entry->base_folder, text,
&folder_file, &file_part, &error))

View File

@ -708,9 +708,22 @@ _gtk_file_system_parse (GtkFileSystem *file_system,
if (str[0] == '~' || g_path_is_absolute (str) || is_uri)
file = g_file_parse_name (str);
else
file = g_file_resolve_relative_path (base_file, str);
{
if (base_file)
file = g_file_resolve_relative_path (base_file, str);
else
{
*folder = NULL;
*file_part = NULL;
g_set_error (error,
GTK_FILE_CHOOSER_ERROR,
GTK_FILE_CHOOSER_ERROR_BAD_FILENAME,
_("Invalid path"));
return FALSE;
}
}
if (g_file_equal (base_file, file))
if (base_file && g_file_equal (base_file, file))
{
/* this is when user types '.', could be the
* beginning of a hidden file, ./ or ../