37 lines
1.2 KiB
Diff
37 lines
1.2 KiB
Diff
--- gtk+-2.8.6/gtk/gtkfilesel.c.orig 2005-12-07 21:13:33 +0100
|
|
+++ gtk+-2.8.6/gtk/gtkfilesel.c 2005-12-07 21:14:56 +0100
|
|
@@ -2461,6 +2461,33 @@
|
|
if (fs->last_selected != NULL)
|
|
g_free (fs->last_selected);
|
|
|
|
+ // Single-click directory entry
|
|
+ if (new_names->len == 1)
|
|
+ {
|
|
+ GtkTreeView *tree_view;
|
|
+ GtkTreeModel *model;
|
|
+ GtkTreePath *path;
|
|
+ GtkTreeIter iter;
|
|
+ gboolean is_file;
|
|
+
|
|
+ tree_view = gtk_tree_selection_get_tree_view (selection);
|
|
+
|
|
+ if (gtk_tree_selection_get_selected (selection, &model, &iter))
|
|
+ {
|
|
+ path = gtk_tree_model_get_path (model, &iter);
|
|
+ gtk_tree_model_get (model, &iter, ISFILE_COLUMN, &is_file, -1);
|
|
+
|
|
+ if (!is_file)
|
|
+ {
|
|
+ gtk_file_selection_dir_activate (tree_view, path,
|
|
+ gtk_tree_view_get_column (tree_view, DIR_COLUMN),
|
|
+ user_data);
|
|
+ }
|
|
+
|
|
+ gtk_tree_path_free (path);
|
|
+ }
|
|
+ }
|
|
+
|
|
fs->last_selected = g_strdup (g_ptr_array_index (new_names, index));
|
|
filename = get_real_filename (fs->last_selected, FALSE);
|
|
|