]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkkeyhash.c
filechooserbutton: Don't ever use gtk_file_chooser_get_files()
[~andy/gtk] / gtk / gtkkeyhash.c
index 954b9a100353bbc56c7573dd8369699174565da9..64d98aa53f77017c8d54c068bb577d83529583d7 100644 (file)
@@ -14,9 +14,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "config.h"
@@ -395,6 +393,7 @@ _gtk_key_hash_lookup (GtkKeyHash      *key_hash,
   gint level;
   GdkModifierType modifiers;
   GdkModifierType consumed_modifiers;
+  GdkModifierType shift_group_mask;
   gboolean group_mod_is_accel_mod = FALSE;
   const GdkModifierType xmods = GDK_MOD2_MASK|GDK_MOD3_MASK|GDK_MOD4_MASK|GDK_MOD5_MASK;
   const GdkModifierType vmods = GDK_SUPER_MASK|GDK_HYPER_MASK|GDK_META_MASK;
@@ -411,7 +410,9 @@ _gtk_key_hash_lookup (GtkKeyHash      *key_hash,
   /* if the group-toggling modifier is part of the default accel mod
    * mask, and it is active, disable it for matching
    */
-  if (mask & GTK_TOGGLE_GROUP_MOD_MASK)
+  shift_group_mask = gdk_keymap_get_modifier_mask (key_hash->keymap,
+                                                   GDK_MODIFIER_INTENT_SHIFT_GROUP);
+  if (mask & shift_group_mask)
     group_mod_is_accel_mod = TRUE;
 
   gdk_keymap_map_virtual_modifiers (key_hash->keymap, &mask);
@@ -449,8 +450,7 @@ _gtk_key_hash_lookup (GtkKeyHash      *key_hash,
                    * otherwise we can get multiple exact matches, some being
                    * bogus */
                   (!group_mod_is_accel_mod ||
-                   (state & GTK_TOGGLE_GROUP_MOD_MASK) ==
-                   (entry->modifiers & GTK_TOGGLE_GROUP_MOD_MASK)))
+                   (state & shift_group_mask) == (entry->modifiers & shift_group_mask)))
 
                {
                  GTK_NOTE (KEYBINDINGS,