diff options
author | Stefano Teso <stefano.teso@gmail.com> | 2011-01-26 22:43:55 -0500 |
---|---|---|
committer | Cosimo Cecchi <cosimoc@gnome.org> | 2011-01-26 22:45:05 -0500 |
commit | fd03c910a73ba18459e68baaf15e8dd295acd5c1 (patch) | |
tree | 1087af5cfa39df18e925e8fd2b52903899bc8da5 | |
parent | 4f4c07b1f9964d437f70c89d94e9585429a69f91 (diff) | |
download | nautilus-fd03c910a73ba18459e68baaf15e8dd295acd5c1.tar.gz |
places-sidebar: allow keyboard navigation with Enter/Space (#637768)
-rw-r--r-- | src/nautilus-places-sidebar.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/nautilus-places-sidebar.c b/src/nautilus-places-sidebar.c index e63e8f44f..828b9d0de 100644 --- a/src/nautilus-places-sidebar.c +++ b/src/nautilus-places-sidebar.c @@ -2410,6 +2410,30 @@ bookmarks_key_press_event_cb (GtkWidget *widget, modifiers = gtk_accelerator_get_default_mod_mask (); + if ((event->keyval == GDK_KEY_Return || + event->keyval == GDK_KEY_KP_Enter || + event->keyval == GDK_KEY_ISO_Enter || + event->keyval == GDK_KEY_space)) { + + GtkTreeModel *model; + GtkTreePath *path; + NautilusWindowOpenFlags flags = 0; + + if ((event->state & modifiers) == GDK_SHIFT_MASK) { + flags = NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB; + } else if ((event->state & modifiers) == GDK_CONTROL_MASK) { + flags = NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW; + } + + model = gtk_tree_view_get_model (sidebar->tree_view); + gtk_tree_view_get_cursor (sidebar->tree_view, &path, NULL); + + open_selected_bookmark (sidebar, model, path, flags); + + gtk_tree_path_free (path); + return TRUE; + } + if (event->keyval == GDK_KEY_Down && (event->state & modifiers) == GDK_MOD1_MASK) { return eject_or_unmount_selection (sidebar); |