code: def mode_key_down(self, viewer, keyname):
          
          # Is this a mode key?
          if keyname not in self.mode_map:
              if (keyname not in self.mode_tbl) or (self._kbdmode != 'meta'):
                  # No
                  return False
              bnch = self.mode_tbl[keyname]
          else:
              bnch = self.mode_map[keyname]
  
          mode_name = bnch.name
          self.logger.debug("cur mode='%s' mode pressed='%s'" % (
              self._kbdmode, mode_name))
  
          if mode_name == self._kbdmode:
              # <== same key was pressed that started the mode we're in
              # standard handling is to close the mode when we press the
              # key again that started that mode
              self.reset_mode(viewer)
              return True
  
          if self._delayed_reset:
              # <== this shouldn't happen, but put here to reset handling
              # of delayed_reset just in case (see cursor up handling)
              self._delayed_reset = False
              return True
  
          if ((self._kbdmode in (None, 'meta')) or
              (self._kbdmode_type != 'locked') or (mode_name == 'meta')):
              if self._kbdmode is not None:
                  self.reset_mode(viewer)
  
              # activate this mode
              if self._kbdmode in (None, 'meta'):
                  mode_type = bnch.type
                  if mode_type is None:
                      mode_type = self._kbdmode_type_default
                  self.set_mode(mode_name, mode_type)
                  if bnch.msg is not None:
                      viewer.onscreen_message(bnch.msg)
  
                  return True
  
          return False
docs: This method is called when a key is pressed and was not handled
          by some other handler with precedence, such as a subcanvas.