[Xfce4-commits] <thunar:master> Improve keyboard navigation in shortcuts view (bug #6635).
Nick Schermer
noreply at xfce.org
Sat Sep 29 22:24:01 CEST 2012
Updating branch refs/heads/master
to 38dc34034c8d0fda651aa5c4d0430d91f80cdafb (commit)
from e20942b733be6fcdf33595f000251dcb00e55e7a (commit)
commit 38dc34034c8d0fda651aa5c4d0430d91f80cdafb
Author: Nick Schermer <nick at xfce.org>
Date: Sat Sep 29 22:20:54 2012 +0200
Improve keyboard navigation in shortcuts view (bug #6635).
When using up/down in the shortcuts view, enter the
directory but without loosing focus.
thunar/thunar-shortcuts-view.c | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/thunar/thunar-shortcuts-view.c b/thunar/thunar-shortcuts-view.c
index a931019..3e7c7a0 100644
--- a/thunar/thunar-shortcuts-view.c
+++ b/thunar/thunar-shortcuts-view.c
@@ -30,6 +30,8 @@
#include <string.h>
#endif
+#include <gdk/gdkkeysyms.h>
+
#ifdef HAVE_LIBNOTIFY
#include <thunar/thunar-notify.h>
#endif
@@ -68,6 +70,8 @@ static gboolean thunar_shortcuts_view_button_press_event (GtkWid
GdkEventButton *event);
static gboolean thunar_shortcuts_view_button_release_event (GtkWidget *widget,
GdkEventButton *event);
+static gboolean thunar_shortcuts_view_key_release_event (GtkWidget *widget,
+ GdkEventKey *event);
static void thunar_shortcuts_view_drag_begin (GtkWidget *widget,
GdkDragContext *context);
static void thunar_shortcuts_view_drag_data_received (GtkWidget *widget,
@@ -200,6 +204,7 @@ thunar_shortcuts_view_class_init (ThunarShortcutsViewClass *klass)
gtkwidget_class = GTK_WIDGET_CLASS (klass);
gtkwidget_class->button_press_event = thunar_shortcuts_view_button_press_event;
gtkwidget_class->button_release_event = thunar_shortcuts_view_button_release_event;
+ gtkwidget_class->key_release_event = thunar_shortcuts_view_key_release_event;
gtkwidget_class->drag_begin = thunar_shortcuts_view_drag_begin;
gtkwidget_class->drag_data_received = thunar_shortcuts_view_drag_data_received;
gtkwidget_class->drag_drop = thunar_shortcuts_view_drag_drop;
@@ -440,6 +445,32 @@ thunar_shortcuts_view_button_release_event (GtkWidget *widget,
+static gboolean
+thunar_shortcuts_view_key_release_event (GtkWidget *widget,
+ GdkEventKey *event)
+{
+ ThunarShortcutsView *view = THUNAR_SHORTCUTS_VIEW (widget);
+
+ /* work nicer with keyboard navigation */
+ switch (event->keyval)
+ {
+ case GDK_Up:
+ case GDK_Down:
+ case GDK_KP_Up:
+ case GDK_KP_Down:
+ thunar_shortcuts_view_open (view, FALSE);
+
+ /* keep focus on us */
+ gtk_widget_grab_focus (widget);
+ break;
+ }
+
+ /* call the parent's release event handler */
+ return (*GTK_WIDGET_CLASS (thunar_shortcuts_view_parent_class)->key_release_event) (widget, event);
+}
+
+
+
static void
thunar_shortcuts_view_drag_begin (GtkWidget *widget,
GdkDragContext *context)
More information about the Xfce4-commits
mailing list