- mod_mask &= _used_mods_mask #ignore irrelevant modifiers
- key_val_mod_mask = (key_val, mod_mask)
- try: return _actions_key_dict[key_val_mod_mask]
- except KeyError: return ''
+ #extract the key value and the consumed modifiers
+ keyval, egroup, level, consumed = _keymap.translate_keyboard_state(
+ event.hardware_keycode, event.state, event.group)
+ #get the modifier mask and ignore irrelevant modifiers
+ mod_mask = event.state & ~consumed & _used_mods_mask
+ try: return _actions_key_dict[(keyval, mod_mask)]
+ except KeyError: raise KeyError, 'Keypress: "%s, %s" does not have an associated action'%(gtk.gdk.keyval_name(keyval), mod_mask)