From c5e56a5fe81d1c56ea1c415d086cee96c7f75b8b Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 8 Jun 2021 16:22:56 +1000 Subject: [PATCH] ensure current card centered even if it was already visible Otherwise if a user reviews a card while keeping Browse open, the card may not be centered if it was already in view. --- qt/aqt/browser/table/table.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qt/aqt/browser/table/table.py b/qt/aqt/browser/table/table.py index 67f2a0451..437277ed2 100644 --- a/qt/aqt/browser/table/table.py +++ b/qt/aqt/browser/table/table.py @@ -129,7 +129,7 @@ class Table: self.clear_selection() if (row := self._model.get_card_row(card_id)) is not None: self._view.selectRow(row) - self._scroll_to_row(row) + self._scroll_to_row(row, scroll_even_if_visible=True) # Reset @@ -451,12 +451,12 @@ class Table: # Move - def _scroll_to_row(self, row: int) -> None: + def _scroll_to_row(self, row: int, scroll_even_if_visible: bool = False) -> None: """Scroll vertically to row.""" top_border = self._view.rowViewportPosition(row) bottom_border = top_border + self._view.rowHeight(0) visible = top_border >= 0 and bottom_border < self._view.viewport().height() - if not visible: + if not visible or scroll_even_if_visible: horizontal = self._view.horizontalScrollBar().value() self._view.scrollTo(self._model.index(row, 0), self._view.PositionAtCenter) self._view.horizontalScrollBar().setValue(horizontal)