Revision: 2780 http://geany.svn.sourceforge.net/geany/?rev=2780&view=rev Author: ntrel Date: 2008-07-15 07:50:06 -0700 (Tue, 15 Jul 2008)
Log Message: ----------- Show '..' item when the current folder is empty (fixes #2015121). Replace is_top_level_directory() code by checking g_path_skip_root().
Modified Paths: -------------- trunk/ChangeLog trunk/plugins/filebrowser.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-07-15 14:29:41 UTC (rev 2779) +++ trunk/ChangeLog 2008-07-15 14:50:06 UTC (rev 2780) @@ -27,6 +27,9 @@ gradually or as required). Move utils_get_current_function() to symbols.c. Move utils_replace_filename() to document.c. + * plugins/filebrowser.c: + Show '..' item when the current folder is empty (fixes #2015121). + Replace is_top_level_directory() code by checking g_path_skip_root().
2008-07-14 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/plugins/filebrowser.c =================================================================== --- trunk/plugins/filebrowser.c 2008-07-15 14:29:41 UTC (rev 2779) +++ trunk/plugins/filebrowser.c 2008-07-15 14:50:06 UTC (rev 2780) @@ -63,13 +63,6 @@ PLUGIN_KEY_GROUP(file_browser, KB_COUNT)
-/* number of characters to skip the root of an absolute path("c:" or "d:" on Windows) */ -#ifdef G_OS_WIN32 -# define ROOT_OFFSET 2 -#else -# define ROOT_OFFSET 0 -#endif - enum { FILEVIEW_COLUMN_ICON = 0, @@ -188,21 +181,13 @@ }
-static gboolean is_top_level_directory(const gchar *dir) -{ - g_return_val_if_fail(dir && strlen(dir) > ROOT_OFFSET, FALSE); - - return (p_utils->str_equal(dir + ROOT_OFFSET, G_DIR_SEPARATOR_S)); -} - - /* adds ".." to the start of the file list */ static void add_top_level_entry(void) { GtkTreeIter iter;
- if (is_top_level_directory(current_dir)) - return; + if (! NZV(g_path_skip_root(current_dir))) + return; /* ignore 'C:' or '/' */
gtk_list_store_prepend(file_store, &iter); last_dir_iter = gtk_tree_iter_copy(&iter); @@ -239,10 +224,11 @@ gtk_entry_set_text(GTK_ENTRY(path_entry), utf8_dir); g_free(utf8_dir);
+ add_top_level_entry(); /* ".." item */ + list = p_utils->get_file_list(current_dir, NULL, NULL); if (list != NULL) { - add_top_level_entry(); g_slist_foreach(list, (GFunc) add_item, NULL); g_slist_foreach(list, (GFunc) g_free, NULL); g_slist_free(list);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.