blob: 250f1629f57c42ea53312d2cd92d9736a4324128 [file] [log] [blame]
Index: gtk+-2.10.6/gtk/gtkcalendar.c
===================================================================
--- gtk+-2.10.6.orig/gtk/gtkcalendar.c
+++ gtk+-2.10.6/gtk/gtkcalendar.c
@@ -2482,9 +2482,11 @@ calendar_main_button_press (GtkCalendar
}
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)
- {
+ {*/
priv->in_drag = 0;
if (day_month == MONTH_CURRENT)
g_signal_emit (calendar,
Index: gtk+-2.10.6/gtk/gtkfilesel.c
===================================================================
--- gtk+-2.10.6.orig/gtk/gtkfilesel.c
+++ gtk+-2.10.6/gtk/gtkfilesel.c
@@ -2426,6 +2426,33 @@ gtk_file_selection_file_changed (GtkTree
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);