summaryrefslogtreecommitdiff
path: root/packages/gtk+/gtk+-2.8.9/single-click.patch
blob: 1bf0db12a8489aee7d625ae02eb4b12a04176cd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
--- 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);