Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gtk+/ChangeLog,v
retrieving revision 1.6945
diff -u -r1.6945 ChangeLog
--- ChangeLog	5 Aug 2005 21:13:00 -0000	1.6945
+++ ChangeLog	6 Aug 2005 15:23:29 -0000
@@ -1,3 +1,11 @@
+2005-08-06  Dan Winship  <danw@novell.com>
+
+	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_class_init,
+	tree_view_keybinding_cb, trap_activate_cb): On "unix", pop up the
+	"Open Location" window on "~" as well as "/".
+	(location_entry_create): Fix this so autocompletion still works
+	correctly in that case.
+
 Fri Aug  5 16:54:19 2005  Søren Sandmann  <sandmann@redhat.com>
 
 	* gtk/gtkmenutoolbutton.c
Index: gtk/gtkfilechooserdefault.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkfilechooserdefault.c,v
retrieving revision 1.279
diff -u -r1.279 gtkfilechooserdefault.c
--- gtk/gtkfilechooserdefault.c	26 Jul 2005 18:43:27 -0000	1.279
+++ gtk/gtkfilechooserdefault.c	6 Aug 2005 15:23:35 -0000
@@ -664,6 +664,13 @@
 				"location-popup",
 				1, G_TYPE_STRING, "/");
 
+#ifdef G_OS_UNIX
+  gtk_binding_entry_add_signal (binding_set,
+				GDK_asciitilde, 0,
+				"location-popup",
+				1, G_TYPE_STRING, "~");
+#endif
+
   gtk_binding_entry_add_signal (binding_set,
 				GDK_Up, GDK_MOD1_MASK,
 				"up-folder",
@@ -3000,10 +3007,13 @@
 			 GdkEventKey           *event,
 			 GtkFileChooserDefault *impl)
 {
-  if (event->keyval == GDK_slash &&
-      ! (event->state & (~GDK_SHIFT_MASK & gtk_accelerator_get_default_mod_mask ())))
+  if ((event->keyval == GDK_slash
+#ifdef G_OS_UNIX
+       || event->keyval == GDK_asciitilde
+#endif
+       ) && ! (event->state & (~GDK_SHIFT_MASK & gtk_accelerator_get_default_mod_mask ())))
     {
-      location_popup_handler (impl, "/");
+      location_popup_handler (impl, event->string);
       return TRUE;
     }
   
@@ -3352,10 +3362,13 @@
 
   modifiers = gtk_accelerator_get_default_mod_mask ();
   
-  if (event->keyval == GDK_slash &&
-      ! (event->state & (~GDK_SHIFT_MASK & modifiers)))
+  if ((event->keyval == GDK_slash
+#ifdef G_OS_UNIX
+       || event->keyval == GDK_asciitilde
+#endif
+       ) && ! (event->state & (~GDK_SHIFT_MASK & modifiers)))
     {
-      location_popup_handler (impl, "/");
+      location_popup_handler (impl, event->string);
       return TRUE;
     }
 
@@ -7063,15 +7076,11 @@
   gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
   _gtk_file_chooser_entry_set_file_system (GTK_FILE_CHOOSER_ENTRY (entry), impl->file_system);
   _gtk_file_chooser_entry_set_action (GTK_FILE_CHOOSER_ENTRY (entry), impl->action);
+  _gtk_file_chooser_entry_set_base_folder (GTK_FILE_CHOOSER_ENTRY (entry), impl->current_folder);
   if (path[0])
-    {
-      _gtk_file_chooser_entry_set_base_folder (GTK_FILE_CHOOSER_ENTRY (entry), 
-					       gtk_file_path_new_steal ((gchar *)path));
-      _gtk_file_chooser_entry_set_file_part (GTK_FILE_CHOOSER_ENTRY (entry), path);
-    }
+    gtk_entry_set_text (GTK_ENTRY (entry), path);
   else
     {
-      _gtk_file_chooser_entry_set_base_folder (GTK_FILE_CHOOSER_ENTRY (entry), impl->current_folder);
       if (impl->action == GTK_FILE_CHOOSER_ACTION_OPEN
 	  || impl->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
 	_gtk_file_chooser_entry_set_file_part (GTK_FILE_CHOOSER_ENTRY (entry), "");
