code: def process_input(self):
          
          try:
              character = self.window.getch()
          except Exception as e:
              character = -1
              if self.debug:
                  self.addstr(self.height-1, self.width - len(e.message) + 1, e.message)
  
          # Check for any keys we've been told to exit on
          if character in self.exit_keys:
              self.stop()
  
          # Force redraw the screen on ^L
          if character == 12:
              self.window.clear()
              return
  
          # Send input to active panes (hidden panes can still receive input)
          if character != -1:
              [pane.process_input(character) for pane in self if pane.active ]
  
              # Print character codes to the bottom center if debugging.
              if self.debug:
                  self.addstr(self.height-1, self.width/2, " "*4)
                  self.addstr(self.height-1, self.width/2 - len(str(character)) / 2, str(character))
docs: Send input to panes marked as active after checking for
          a request to redraw the screen (^L), a request to exit,
          and optionally display character codes as they're received.