[gtk+/gtk-2-24] file chooser entry: Special-case ., .. and ~
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] file chooser entry: Special-case ., .. and ~
- Date: Thu, 10 Mar 2016 21:32:30 +0000 (UTC)
commit a17e23b8cabd68590a114ea3624f80258bac133e
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Jul 23 00:42:19 2015 -0400
file chooser entry: Special-case ., .. and ~
Make sure entering the three special strings ".", ".." or "~" in
the location entry works as expected. They already worked correctly
if you append a '/' to force them to be recognized as the 'folder'
part, but that should not be necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=752707
gtk/gtkfilechooserentry.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkfilechooserentry.c b/gtk/gtkfilechooserentry.c
index 001398b..c6bb2a6 100644
--- a/gtk/gtkfilechooserentry.c
+++ b/gtk/gtkfilechooserentry.c
@@ -319,6 +319,14 @@ gtk_file_chooser_get_file_for_text (GtkFileChooserEntry *chooser_entry,
return file;
}
+static gboolean
+is_directory_shortcut (const char *text)
+{
+ return strcmp (text, ".") == 0 ||
+ strcmp (text, "..") == 0 ||
+ strcmp (text, "~" ) == 0;
+}
+
static GFile *
gtk_file_chooser_get_directory_for_text (GtkFileChooserEntry *chooser_entry,
const char * text)
@@ -330,7 +338,9 @@ gtk_file_chooser_get_directory_for_text (GtkFileChooserEntry *chooser_entry,
if (file == NULL)
return NULL;
- if (text[0] == 0 || text[strlen (text) - 1] == G_DIR_SEPARATOR)
+ g_print ("text '%s', folder '%s'\n", text, g_file_get_path (file));
+ if (text[0] == 0 || text[strlen (text) - 1] == G_DIR_SEPARATOR ||
+ is_directory_shortcut (text))
return file;
parent = g_file_get_parent (file);
@@ -807,6 +817,8 @@ _gtk_file_chooser_entry_get_file_part (GtkFileChooserEntry *chooser_entry)
last_slash = strrchr (text, G_DIR_SEPARATOR);
if (last_slash)
return last_slash + 1;
+ else if (is_directory_shortcut (text))
+ return "";
else
return text;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]