GNOME Bugzilla – Bug 580560
Backspace key does not go to the parent directory
Last modified: 2009-06-15 18:09:27 UTC
In the FileChooser dialog (as it is done in nautilus) the enter key should open the selected directory (this works correctly), and the backspace key should go to the parent directory (this is instead missing): the user can browse faster using keyboard shortcuts!
There is Alt+Up already for this, analoguous to Alt+Left, Alt+Right and Alt+Down.
Can't you try to unify things? in windows explorer it's the backspace, in windows open file it's the backspace, in nautilus it's the backspace, in thunar it's the backspace, in firefox it's the backspace, in dolphin it's the backspace. I don't have macos x so I can't tell you about that.
Fixing up the summary a bit, as we shouldn't be making demands. However, as Nicolò correctly pointed out, this is highly inconsistent with the rest of the desktop.
I've run into this a bunch. Nautilus trained me that Backspace goes back/up when file choosing. It'd be nice if GtkFileChooser could behave this way as well. It seems the sort of thing that would help further improve and unify the GNOME desktop experience. AfC
Thanks for accepting this
Interesting; GtkTreeView was eating our Backspace. Fixed in commit 2b3de3dd75384a0af99f92656cdd70d72319ca6c. From the commit message: bgo#580560 - Make Backspace work in the file chooser to to to the parent directory GtkFileChooserDefault actually implements a binding signal for Backspace, to make it go to the parent directory. However, GtkTreeView was eating our Backspace, and thus the file chooser was not getting a chance to execute its binding signal. GtkTreeView implements a Backspace binding itself, which it uses to move to the parent node of the current cursor node. However, the binding handler would return TRUE even if there was no parent to the current node. Now the binding handler only returns TRUE if it actually changed the cursor. Additionally, gtk_tree_view_key_press() sees if no bindings handled a key press; in that case, it re-sends the key press to the treeview's search entry. However, sending a Backspace to an empty entry makes the entry beep. Thus, we add a flag that gets set from GtkTreeView's Backspace binding handler, to tell gtk_tree_view_key_press() when it should *not* re-emit the key press on the search entry. Sort of, "yeah, I didn't handle this key press, but I don't want you to send it to the search entry, either!". Signed-off-by: Federico Mena Quintero <federico@novell.com>