def handle_key ch
      $log.debug "  KeyDispatcher GOT KEY #{ch} "
      @keyint = ch
      @keychr = nil
      chr = nil
      chr = ch.chr if ch > 32 and ch < 127
      @keychr = chr

      ret = process_key ch
      # revert to the basic handling of key_map and refreshing pad.
      #####
      # NOTE
      # this is being done where we are creating some kind of front for a textpad by using +view+
      # so we steal some keys, and pass the rest to +view+. Otherwise, next line is not needed.
      # +@source+ typically would be handle to textpad yielded by +view+.
      #####
      @source._handle_key(ch) if ret == :UNHANDLED and @source
    end
def handle_key ch
      $log.debug "  KeyDispatcher GOT KEY #{ch} "
      @keyint = ch
      @keychr = nil
      chr = nil
      chr = ch.chr if ch > 32 and ch < 127
      @keychr = chr

      ret = process_key ch
      # revert to the basic handling of key_map and refreshing pad.
      #####
      # NOTE
      # this is being done where we are creating some kind of front for a textpad by using +view+
      # so we steal some keys, and pass the rest to +view+. Otherwise, next line is not needed.
      # +@source+ typically would be handle to textpad yielded by +view+.
      #####
      @source._handle_key(ch) if ret == :UNHANDLED and @source
    end
--- {{{
 key handler of Controlphandler
 This sets +@keyint+ with the value  read by window.
 This sets +@keychr+ with the +chr+ value of +ch+ if ch between 32 and 127 exclusive.
 @param [Integer] ch is key read by window.