From ddb4b3ebe2fca5eb5da6bc6a70549885df10faaf Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Sat, 29 Jan 2011 20:06:25 +0900 Subject: [PATCH] Added "shift" modifier versions of keybings for GtkFileChooser "folder-up"/"folder-down" bindings. Also updated documentation, closes bug 322926 --- gtk/gtkfilechooser.c | 15 ++++++++---- gtk/gtkfilechooserdefault.c | 46 ++++++++++++++++++++++++------------- 2 files changed, 41 insertions(+), 20 deletions(-) diff --git a/gtk/gtkfilechooser.c b/gtk/gtkfilechooser.c index 9243612469..19071fe3c1 100644 --- a/gtk/gtkfilechooser.c +++ b/gtk/gtkfilechooser.c @@ -222,18 +222,25 @@ * * up-folder * - * AltUp + * AltUp; + * AltShiftUp * * Both the individual Up key and the numeric * keypad's Up key are supported. - * - * ; + * ; * Backspace * * * * down-folder - * AltDown + * + * AltDown; + * AltShiftDown + * + * Both the individual Down key and the numeric + * keypad's Down key are supported. + * + * * * * home-folder diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c index fc89dc9081..57d0514a47 100644 --- a/gtk/gtkfilechooserdefault.c +++ b/gtk/gtkfilechooserdefault.c @@ -465,6 +465,22 @@ G_DEFINE_TYPE_WITH_CODE (GtkFileChooserDefault, _gtk_file_chooser_default, GTK_T G_IMPLEMENT_INTERFACE (GTK_TYPE_FILE_CHOOSER_EMBED, gtk_file_chooser_embed_default_iface_init)); + +static void +add_normal_and_shifted_binding (GtkBindingSet *binding_set, + guint keyval, + GdkModifierType modifiers, + const gchar *signal_name) +{ + gtk_binding_entry_add_signal (binding_set, + keyval, modifiers, + signal_name, 0); + + gtk_binding_entry_add_signal (binding_set, + keyval, modifiers | GDK_SHIFT_MASK, + signal_name, 0); +} + static void _gtk_file_chooser_default_class_init (GtkFileChooserDefaultClass *class) { @@ -617,27 +633,25 @@ _gtk_file_chooser_default_class_init (GtkFileChooserDefaultClass *class) GDK_KEY_v, GDK_CONTROL_MASK, "location-popup-on-paste", 0); - gtk_binding_entry_add_signal (binding_set, - GDK_KEY_Up, GDK_MOD1_MASK, - "up-folder", - 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_BackSpace, 0, "up-folder", 0); - gtk_binding_entry_add_signal (binding_set, - GDK_KEY_KP_Up, GDK_MOD1_MASK, - "up-folder", - 0); - gtk_binding_entry_add_signal (binding_set, - GDK_KEY_Down, GDK_MOD1_MASK, - "down-folder", - 0); - gtk_binding_entry_add_signal (binding_set, - GDK_KEY_KP_Down, GDK_MOD1_MASK, - "down-folder", - 0); + add_normal_and_shifted_binding (binding_set, + GDK_KEY_Up, GDK_MOD1_MASK, + "up-folder"); + + add_normal_and_shifted_binding (binding_set, + GDK_KEY_KP_Up, GDK_MOD1_MASK, + "up-folder"); + + add_normal_and_shifted_binding (binding_set, + GDK_KEY_Down, GDK_MOD1_MASK, + "down-folder"); + add_normal_and_shifted_binding (binding_set, + GDK_KEY_KP_Down, GDK_MOD1_MASK, + "down-folder"); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Home, GDK_MOD1_MASK,