From 517fd219612e0adb71bc3c5705e50a0c5ec193a7 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 12 Jun 2018 13:46:15 +1000 Subject: [PATCH] hack to keep scroll position in deckbrowser noticeable flash when page is redrawn; in the future we'll need to use js to update the page --- aqt/deckbrowser.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/aqt/deckbrowser.py b/aqt/deckbrowser.py index 95b04bc04..6d61ef1d1 100644 --- a/aqt/deckbrowser.py +++ b/aqt/deckbrowser.py @@ -84,6 +84,9 @@ class DeckBrowser: def _renderPage(self, reuse=False): if not reuse: self._dueTree = self.mw.col.sched.deckDueTree() + self.web.evalWithCallback("window.pageYOffset", self.__renderPage) + + def __renderPage(self, offset): tree = self._renderDeckTree(self._dueTree) stats = self._renderStats() self.web.stdHtml(self._body%dict( @@ -92,12 +95,10 @@ class DeckBrowser: js=["jquery.js", "jquery-ui.js", "deckbrowser.js"]) self.web.key = "deckBrowser" self._drawButtons() + self._scrollToOffset(offset) - def _oldPos(self): - if self.web.key == "deckBrowser": - return self.web.page().mainFrame().scrollPosition() - else: - return self.scrollPos + def _scrollToOffset(self, offset): + self.web.eval("$(function() { window.scrollTo(0, %d, 'instant'); });" % offset) def _renderStats(self): cards, thetime = self.mw.col.db.first("""