]> Pileus Git - ~andy/gtk/commitdiff
Added "shift" modifier versions of keybings for GtkFileChooser "folder-up"/"folder...
authorTristan Van Berkom <tristan.van.berkom@gmail.com>
Sat, 29 Jan 2011 11:06:25 +0000 (20:06 +0900)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>
Mon, 31 Jan 2011 20:02:56 +0000 (05:02 +0900)
Also updated documentation, closes bug 322926

gtk/gtkfilechooser.c
gtk/gtkfilechooserdefault.c

index 9243612469e23cf14996fb83718bd46f663a9329..19071fe3c1aaa7f0dc908d91dcfb2bdf21755358 100644 (file)
  *           <row>
  *             <entry>up-folder</entry>
  *             <entry>
- *               <keycombo><keycap>Alt</keycap><keycap>Up</keycap></keycombo>
+ *               <keycombo><keycap>Alt</keycap><keycap>Up</keycap></keycombo>;
+ *                <keycombo><keycap>Alt</keycap><keycap>Shift</keycap><keycap>Up</keycap></keycombo>
  *                <footnote>
  *                   Both the individual Up key and the numeric
  *                   keypad's Up key are supported.
- *               </footnote>
- *               ;
+ *               </footnote>;
  *               <keycap>Backspace</keycap>
  *             </entry>
  *           </row>
  *           <row>
  *             <entry>down-folder</entry>
- *             <entry><keycombo><keycap>Alt</keycap><keycap>Down</keycap></keycombo></entry>
+ *             <entry>
+ *                <keycombo><keycap>Alt</keycap><keycap>Down</keycap></keycombo>;
+ *                <keycombo><keycap>Alt</keycap><keycap>Shift</keycap><keycap>Down</keycap></keycombo>
+ *                <footnote>
+ *                   Both the individual Down key and the numeric
+ *                   keypad's Down key are supported.
+ *               </footnote>
+ *              </entry>
  *           </row>
  *           <row>
  *             <entry>home-folder</entry>
index fc89dc908133aed1906a58bc58c2842195d70ade..57d0514a4728719e47bbd4c81235a7b5d9c8c985 100644 (file)
@@ -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,