When not in focus, gtk and the accelerators handle the the key press.
@return false to let gtk handle the key action
"""
- #dont allow key presses to queue up
- if gtk.events_pending(): return True
#extract action name from this key press
key_name = gtk.gdk.keyval_name(event.keyval)
mod_mask = event.state
)
_actions_key_dict = dict(((key_name, mod_mask), action_name) for action_name, key_name, mod_mask in _actions_key_list)
+_all_mods_mask = reduce(lambda x, y: x | y, [mod_mask for action_name, key_name, mod_mask in _actions_key_list], 0)
def get_action_name_from_key_name(key_name, mod_mask=0):
"""
Get the action name associated with the key name and mask.
@param mod_mask the key press mask (shift, ctrl) 0 for none
@return the action name or blank string
"""
+ mod_mask &= _all_mods_mask #ignore irrelevant modifiers
key_name_mod_mask = (key_name, mod_mask)
if key_name_mod_mask in _actions_key_dict: return _actions_key_dict[key_name_mod_mask]
return ''