aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gtk+/gtk+-2.6.10/single-click.patch
blob: 41e70c8487f55936631c74b4e1e77041cfae0d85 (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
diff -urNd gtk+-2.6.3/gtk/gtkcalendar.c gtk+-2.6.3/gtk/gtkcalendar.c
--- gtk+-2.6.3/gtk/gtkcalendar.c	2005-04-06 16:57:04 +01:00
+++ gtk+-2.6.3/gtk/gtkcalendar.c	2005-04-06 20:05:18 +01:00
@@ -1023,9 +1023,11 @@
 	}
 
       gtk_calendar_select_and_focus_day (calendar, day);
-    }
+      
+      // This change causes the calendar to disappear after choosing a day
+/*    }
   else if (event->type == GDK_2BUTTON_PRESS)
-    {
+    {*/
       private_data->in_drag = 0;
       if (day_month == MONTH_CURRENT)
 	g_signal_emit (calendar,
diff -urNd gtk+-2.6.3/gtk/gtkfilesel.c gtk+-2.6.3/gtk/gtkfilesel.c
--- gtk+-2.6.3/gtk/gtkfilesel.c	2005-04-06 16:57:07 +01:00
+++ gtk+-2.6.3/gtk/gtkfilesel.c	2005-04-07 13:40:32 +01:00
@@ -2468,6 +2468,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);