示例#1
0
 def process_key_event(self, send_key_action_cb, wid, key_event):
     if self.swap_keys:
         trans = self.key_translations.get(key_event.keyname)
         if trans:
             debug("swap keys: translating key '%s' to %s", key_event, trans)
             key_event.keycode, key_event.keyname = trans
     if key_event.keycode==self.num_lock_keycode and not key_event.pressed:
         debug("toggling numlock")
         self.num_lock_state = not self.num_lock_state
         getOSXMenuHelper().update_numlock(self.num_lock_state)
     send_key_action_cb(wid, key_event)
示例#2
0
 def set_modifier_mappings(self, mappings):
     KeyboardBase.set_modifier_mappings(self, mappings)
     self.meta_modifier = self.modifier_keys.get("Meta_L") or self.modifier_keys.get("Meta_R")
     self.control_modifier = self.modifier_keys.get("Control_L") or self.modifier_keys.get("Control_R")
     self.num_lock_modifier = self.modifier_keys.get("Num_Lock")
     debug("set_modifier_mappings(..) meta=%s, control=%s, numlock=%s", mappings, self.meta_modifier, self.control_modifier, self.num_lock_modifier)
     #find the keysyms and keycodes to use for each key we may translate:
     for orig_keysym in KEYS_TRANSLATION_OPTIONS.keys():
         new_def = self.find_translation(orig_keysym)
         if new_def is not None:
             self.key_translations[orig_keysym] = new_def
     debug("set_modifier_mappings(..) swap keys translations=%s", self.key_translations)
示例#3
0
 def mask_to_names(self, mask):
     names = KeyboardBase.mask_to_names(self, mask)
     if self.swap_keys and self.meta_modifier is not None and self.control_modifier is not None:
         meta_on = bool(mask & gtk.gdk.META_MASK)
         meta_set = self.meta_modifier in names
         control_set = self.control_modifier in names
         if meta_on and not control_set:
             debug("mask_to_names swapping meta for control: %s for %s", self.meta_modifier, self.control_modifier)
             names.append(self.control_modifier)
             if meta_set:
                 names.remove(self.meta_modifier)
         elif control_set and not meta_on:
             debug("mask_to_names swapping control for meta: %s for %s", self.control_modifier, self.meta_modifier)
             names.remove(self.control_modifier)
             if not meta_set:
                 names.append(self.meta_modifier)
     #deal with numlock:
     if self.num_lock_modifier is not None:
         if self.num_lock_state and self.num_lock_modifier not in names:
             names.append(self.num_lock_modifier)
         elif not self.num_lock_state and self.num_lock_modifier in names:
             names.remove(self.num_lock_modifier)
     debug("mask_to_names(%s)=%s", mask, names)
     return names