summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Carlson <mdc@src.gnome.org>2010-07-10 00:14:00 +0200
committerMarcus Carlson <mdc@src.gnome.org>2010-07-11 22:00:00 +0200
commit8ef7a9a1a1bdd02926b8b1fe59a6e97cf6c69574 (patch)
tree031348367e522c8a0bd9202bcfb504b73a59f97d
parent525b54d9a2385efdae21fd0b0da3631ba0071ce1 (diff)
downloadnautilus-8ef7a9a1a1bdd02926b8b1fe59a6e97cf6c69574.tar.gz
Adds key binding for expanding and collapsing folders in list view
https://bugzilla.gnome.org/show_bug.cgi?id=504869
-rw-r--r--src/file-manager/fm-list-view.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/file-manager/fm-list-view.c b/src/file-manager/fm-list-view.c
index a0f5d5b91..724461e64 100644
--- a/src/file-manager/fm-list-view.c
+++ b/src/file-manager/fm-list-view.c
@@ -982,6 +982,10 @@ key_press_callback (GtkWidget *widget, GdkEventKey *event, gpointer callback_dat
FMDirectoryView *view;
GdkEventButton button_event = { 0 };
gboolean handled;
+ GtkTreeView *tree_view;
+ GtkTreePath *path;
+
+ tree_view = GTK_TREE_VIEW (widget);
view = FM_DIRECTORY_VIEW (callback_data);
handled = FALSE;
@@ -993,6 +997,22 @@ key_press_callback (GtkWidget *widget, GdkEventKey *event, gpointer callback_dat
handled = TRUE;
}
break;
+ case GDK_Right:
+ gtk_tree_view_get_cursor (tree_view, &path, NULL);
+ if (path) {
+ gtk_tree_view_expand_row (tree_view, path, FALSE);
+ gtk_tree_path_free (path);
+ }
+ handled = TRUE;
+ break;
+ case GDK_Left:
+ gtk_tree_view_get_cursor (tree_view, &path, NULL);
+ if (path) {
+ gtk_tree_view_collapse_row (tree_view, path);
+ gtk_tree_path_free (path);
+ }
+ handled = TRUE;
+ break;
case GDK_space:
if (event->state & GDK_CONTROL_MASK) {
handled = FALSE;