diff -ru gtk+-1.2.10.orig/gtk/gtkfilesel.c gtk+-1.2.10/gtk/gtkfilesel.c
--- gtk+-1.2.10.orig/gtk/gtkfilesel.c	2001-02-16 06:36:19.000000000 +0200
+++ gtk+-1.2.10/gtk/gtkfilesel.c	2010-11-09 21:43:15.000000000 +0200
@@ -56,10 +56,10 @@
 #include "gtkdialog.h"
 #include "gtkintl.h"
 
-#define DIR_LIST_WIDTH   180
-#define DIR_LIST_HEIGHT  180
-#define FILE_LIST_WIDTH  180
-#define FILE_LIST_HEIGHT 180
+#define DIR_LIST_WIDTH   120
+#define DIR_LIST_HEIGHT  140
+#define FILE_LIST_WIDTH  120
+#define FILE_LIST_HEIGHT 140
 
 /* The Hurd doesn't define either PATH_MAX or MAXPATHLEN, so we put this
  * in here, since the rest of the code in the file does require some
@@ -328,9 +328,6 @@
 					      gint                   try_complete);
 static void gtk_file_selection_abort         (GtkFileSelection      *fs);
 
-static void gtk_file_selection_update_history_menu (GtkFileSelection       *fs,
-						    gchar                  *current_dir);
-
 static void gtk_file_selection_create_dir (GtkWidget *widget, gpointer data);
 static void gtk_file_selection_delete_file (GtkWidget *widget, gpointer data);
 static void gtk_file_selection_rename_file (GtkWidget *widget, gpointer data);
@@ -383,10 +380,8 @@
 gtk_file_selection_init (GtkFileSelection *filesel)
 {
   GtkWidget *entry_vbox;
-  GtkWidget *label;
   GtkWidget *list_hbox;
   GtkWidget *confirm_area;
-  GtkWidget *pulldown_hbox;
   GtkWidget *scrolled_win;
 
   char *dir_title [2];
@@ -395,8 +390,8 @@
   filesel->cmpl_state = cmpl_init_state ();
 
   /* The dialog-sized vertical box  */
-  filesel->main_vbox = gtk_vbox_new (FALSE, 10);
-  gtk_container_set_border_width (GTK_CONTAINER (filesel), 10);
+  filesel->main_vbox = gtk_vbox_new (FALSE, 2);
+  gtk_container_set_border_width (GTK_CONTAINER (filesel), 5);
   gtk_container_add (GTK_CONTAINER (filesel), filesel->main_vbox);
   gtk_widget_show (filesel->main_vbox);
 
@@ -408,21 +403,10 @@
 		      FALSE, FALSE, 0);
   gtk_widget_show (filesel->button_area);
   
-  gtk_file_selection_show_fileop_buttons(filesel);
-
-  /* hbox for pulldown menu */
-  pulldown_hbox = gtk_hbox_new (TRUE, 5);
-  gtk_box_pack_start (GTK_BOX (filesel->main_vbox), pulldown_hbox, FALSE, FALSE, 0);
-  gtk_widget_show (pulldown_hbox);
-  
-  /* Pulldown menu */
-  filesel->history_pulldown = gtk_option_menu_new ();
-  gtk_widget_show (filesel->history_pulldown);
-  gtk_box_pack_start (GTK_BOX (pulldown_hbox), filesel->history_pulldown, 
-		      FALSE, FALSE, 0);
+  gtk_file_selection_hide_fileop_buttons(filesel);
     
   /*  The horizontal box containing the directory and file listboxes  */
-  list_hbox = gtk_hbox_new (FALSE, 5);
+  list_hbox = gtk_hbox_new (FALSE, 0);
   gtk_box_pack_start (GTK_BOX (filesel->main_vbox), list_hbox, TRUE, TRUE, 0);
   gtk_widget_show (list_hbox);
 
@@ -440,7 +424,7 @@
   gtk_container_add (GTK_CONTAINER (scrolled_win), filesel->dir_list);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
 				  GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
-  gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 3);
   gtk_box_pack_start (GTK_BOX (list_hbox), scrolled_win, TRUE, TRUE, 0);
   gtk_widget_show (filesel->dir_list);
   gtk_widget_show (scrolled_win);
@@ -459,7 +443,7 @@
   gtk_container_add (GTK_CONTAINER (scrolled_win), filesel->file_list);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),
 				  GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
-  gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 5);
+  gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 3);
   gtk_box_pack_start (GTK_BOX (list_hbox), scrolled_win, TRUE, TRUE, 0);
   gtk_widget_show (filesel->file_list);
   gtk_widget_show (scrolled_win);
@@ -491,15 +475,11 @@
   gtk_widget_show (filesel->cancel_button);
 
   /*  The selection entry widget  */
-  entry_vbox = gtk_vbox_new (FALSE, 2);
+  entry_vbox = gtk_vbox_new (FALSE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (entry_vbox), 3);
   gtk_box_pack_end (GTK_BOX (filesel->main_vbox), entry_vbox, FALSE, FALSE, 0);
   gtk_widget_show (entry_vbox);
 
-  filesel->selection_text = label = gtk_label_new ("");
-  gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
-  gtk_box_pack_start (GTK_BOX (entry_vbox), label, FALSE, FALSE, 0);
-  gtk_widget_show (label);
-
   filesel->selection_entry = gtk_entry_new ();
   gtk_signal_connect (GTK_OBJECT (filesel->selection_entry), "key_press_event",
 		      (GtkSignalFunc) gtk_file_selection_key_press, filesel);
@@ -512,20 +492,12 @@
   gtk_box_pack_start (GTK_BOX (entry_vbox), filesel->selection_entry, TRUE, TRUE, 0);
   gtk_widget_show (filesel->selection_entry);
 
-  if (!cmpl_state_okay (filesel->cmpl_state))
-    {
-      gchar err_buf[256];
-
-      sprintf (err_buf, _("Directory unreadable: %s"), cmpl_strerror (cmpl_errno));
-
-      gtk_label_set_text (GTK_LABEL (filesel->selection_text), err_buf);
-    }
-  else
+  if (cmpl_state_okay (filesel->cmpl_state))
     {
       gtk_file_selection_populate (filesel, "", FALSE);
     }
 
-  gtk_widget_grab_focus (filesel->selection_entry);
+  gtk_widget_grab_focus (filesel->dir_list);
 }
 
 GtkWidget*
@@ -1124,107 +1096,6 @@
   return FALSE;
 }
 
-
-static void
-gtk_file_selection_history_callback (GtkWidget *widget, gpointer data)
-{
-  GtkFileSelection *fs = data;
-  HistoryCallbackArg *callback_arg;
-  GList *list;
-
-  g_return_if_fail (fs != NULL);
-  g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
-
-  list = fs->history_list;
-  
-  while (list) {
-    callback_arg = list->data;
-    
-    if (callback_arg->menu_item == widget)
-      {
-	gtk_file_selection_populate (fs, callback_arg->directory, FALSE);
-	break;
-      }
-    
-    list = list->next;
-  }
-}
-
-static void 
-gtk_file_selection_update_history_menu (GtkFileSelection *fs,
-					gchar *current_directory)
-{
-  HistoryCallbackArg *callback_arg;
-  GtkWidget *menu_item;
-  GList *list;
-  gchar *current_dir;
-  gint dir_len;
-  gint i;
-  
-  g_return_if_fail (fs != NULL);
-  g_return_if_fail (GTK_IS_FILE_SELECTION (fs));
-  g_return_if_fail (current_directory != NULL);
-  
-  list = fs->history_list;
-
-  if (fs->history_menu) 
-    {
-      while (list) {
-	callback_arg = list->data;
-	g_free (callback_arg->directory);
-	g_free (callback_arg);
-	list = list->next;
-      }
-      g_list_free (fs->history_list);
-      fs->history_list = NULL;
-      
-      gtk_widget_destroy (fs->history_menu);
-    }
-  
-  fs->history_menu = gtk_menu_new();
-
-  current_dir = g_strdup (current_directory);
-
-  dir_len = strlen (current_dir);
-
-  for (i = dir_len; i >= 0; i--)
-    {
-      /* the i == dir_len is to catch the full path for the first 
-       * entry. */
-      if ( (current_dir[i] == '/') || (i == dir_len))
-	{
-	  /* another small hack to catch the full path */
-	  if (i != dir_len) 
-		  current_dir[i + 1] = '\0';
-	  menu_item = gtk_menu_item_new_with_label (current_dir);
-	  
-	  callback_arg = g_new (HistoryCallbackArg, 1);
-	  callback_arg->menu_item = menu_item;
-	  
-	  /* since the autocompletion gets confused if you don't 
-	   * supply a trailing '/' on a dir entry, set the full
-	   * (current) path to "" which just refreshes the filesel */
-	  if (dir_len == i) {
-	    callback_arg->directory = g_strdup ("");
-	  } else {
-	    callback_arg->directory = g_strdup (current_dir);
-	  }
-	  
-	  fs->history_list = g_list_append (fs->history_list, callback_arg);
-	  
-	  gtk_signal_connect (GTK_OBJECT (menu_item), "activate",
-			      (GtkSignalFunc) gtk_file_selection_history_callback,
-			      (gpointer) fs);
-	  gtk_menu_append (GTK_MENU (fs->history_menu), menu_item);
-	  gtk_widget_show (menu_item);
-	}
-    }
-
-  gtk_option_menu_set_menu (GTK_OPTION_MENU (fs->history_pulldown), 
-			    fs->history_menu);
-  g_free (current_dir);
-}
-
 static void
 gtk_file_selection_file_button (GtkWidget *widget,
 			       gint row, 
@@ -1296,9 +1167,10 @@
 	    gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
 	    break;
 	  }
-      else
+      else {
 	gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename);
-
+	gtk_file_selection_populate (fs, filename, FALSE);
+      }
       g_free (filename);
     }
 }
@@ -1313,7 +1185,6 @@
   gchar* filename;
   gint row;
   gchar* rem_path = rel_path;
-  gchar* sel_text;
   gchar* text[2];
   gint did_recurse = FALSE;
   gint possible_count = 0;
@@ -1451,22 +1322,6 @@
     {
       if (fs->selection_entry)
 	gtk_entry_set_position (GTK_ENTRY (fs->selection_entry), selection_index);
-
-      if (fs->selection_entry)
-	{
-	  sel_text = g_strconcat (_("Selection: "),
-				  cmpl_reference_position (cmpl_state),
-				  NULL);
-
-	  gtk_label_set_text (GTK_LABEL (fs->selection_text), sel_text);
-	  g_free (sel_text);
-	}
-
-      if (fs->history_pulldown) 
-	{
-	  gtk_file_selection_update_history_menu (fs, cmpl_reference_position (cmpl_state));
-	}
-      
     }
 }
 
