summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2006-01-20 19:11:31 +0000
committerDan Winship <danw@src.gnome.org>2006-01-20 19:11:31 +0000
commita1cb4e7d818a2c39e728f32e568309e6e6328a9a (patch)
tree5a53496c20ea9c2b515c082937399d5ec7f781ac
parentd8711720a38bf2efef6e886be413818f532b3e46 (diff)
downloadgdk-pixbuf-a1cb4e7d818a2c39e728f32e568309e6e6328a9a.tar.gz
On "unix", pop up the "Open Location" window on "~" as well as "/".
* 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 "/". #153213 (location_entry_create): Fix this so autocompletion still works correctly in that case. (ok'ed by federico)
-rw-r--r--ChangeLog8
-rw-r--r--ChangeLog.pre-2-108
-rw-r--r--gtk/gtkfilechooserdefault.c33
3 files changed, 37 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index de6b43ca7..9485b5167 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-01-20 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 "/". #153213
+ (location_entry_create): Fix this so autocompletion still works
+ correctly in that case.
+
2006-01-19 Matthias Clasen <mclasen@redhat.com>
* configure.in: Explicitly link against Xrender.
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index de6b43ca7..9485b5167 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,11 @@
+2006-01-20 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 "/". #153213
+ (location_entry_create): Fix this so autocompletion still works
+ correctly in that case.
+
2006-01-19 Matthias Clasen <mclasen@redhat.com>
* configure.in: Explicitly link against Xrender.
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index de0d828d5..44274b237 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -674,6 +674,13 @@ gtk_file_chooser_default_class_init (GtkFileChooserDefaultClass *class)
"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",
@@ -3032,10 +3039,13 @@ tree_view_keybinding_cb (GtkWidget *tree_view,
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;
}
@@ -3391,10 +3401,13 @@ trap_activate_cb (GtkWidget *widget,
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;
}
@@ -7165,15 +7178,11 @@ location_entry_create (GtkFileChooserDefault *impl,
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), "");