docs: def _resize(self, init=False):
          col, row = self._selection_to_col_row(self.selection)
          if not (self.startPos <= row <= self.startPos + self.list_maxY - 1):
              while row > self.startPos:
                  self.startPos += 1
              while row < self.startPos + self.list_maxY - 1:
                  self.startPos -= 1
          ''' if the selection at the end of the list,
              try to scroll down '''
          if init and row > self.list_maxY:
              new_startPos = self._num_of_rows - self.list_maxY + 1
              if row > new_startPos:
                  if logger.isEnabledFor(logging.DEBUG):
                      logger.debug('setting startPos at {}'.format(new_startPos))
                  self.startPos = new_startPos
          self.refresh_selection()