code: def move_previews(self):
          "Move previews after a resize event"
  
          # calculate new positions
          min_y = self._calc_preview_ypos()
          for idx, (key, p) in enumerate(self.previews.items()):
              new_dy = min_y[idx] - p.y
              self.previews[key].move_by(0, new_dy)
          self._update_cregion()
          self.show_selected(self._sel_id, self._sel_widgetf move_previews(self):
          "Move previews after a resize event"
  
          # calculate new positions
          min_y = self._calc_preview_ypos()
          for idx, (key, p) in enumerate(self.previews.items()):
              new_dy = min_y[idx] - p.y
              self.previews[key].move_by(0, new_dy)
          self._update_cregion()
          self.show_selected(self._sel_id, self._sel_widget)
docs: Move previews after a resize event