code: def __updateStack(self, key):
          
          #if self.lastMenu is not None:
          #    if not ConfigManager.SETTINGS[MENU_TAKES_FOCUS]:
          #        self.app.hide_menu()
          #
          #    self.lastMenu = None
  
          if key == Key.ENTER:
              # Special case - map Enter to \n
              key = '\n'
          if key == Key.TAB:
              # Special case - map Tab to \t
              key = '\t'
  
          if key == Key.BACKSPACE:
              if ConfigManager.SETTINGS[UNDO_USING_BACKSPACE] and self.phraseRunner.can_undo():
                  self.phraseRunner.undo_expansion()
              else:
                  # handle backspace by dropping the last saved character
                  try:
                      self.inputStack.pop()
                  except IndexError:
                      # in case self.inputStack is empty
                      pass
  
              return False
  
          elif len(key) > 1:
              # non-simple key
              self.inputStack.clear()
              self.phraseRunner.clear_last()
              return False
          else:
              # Key is a character
              self.phraseRunner.clear_last()
              # if len(self.inputStack) == MAX_STACK_LENGTH, front items will removed for appending new items.
              self.inputStack.append(key)
              return True
docs: Update the input stack in non-hotkey mode, and determine if anything
          further is needed.
  
          @return: True if further action is needed