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);