From 0c1f71368787f0d53de15891f791a13a44438d48 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 21 Sep 2014 17:17:22 +0530 Subject: [PATCH] Fix file internal links having different effect on history as compared to links that cause a new file to be loaded --- src/calibre/gui2/viewer/documentview.py | 4 +++- src/calibre/gui2/viewer/main.py | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py index 4480581ee2..c1626ad4c2 100644 --- a/src/calibre/gui2/viewer/documentview.py +++ b/src/calibre/gui2/viewer/documentview.py @@ -1306,10 +1306,12 @@ class DocumentView(QWebView): # {{{ def mouseReleaseEvent(self, ev): opos = self.document.ypos + if self.manager is not None: + prev_pos = self.manager.update_page_number() ret = QWebView.mouseReleaseEvent(self, ev) if self.manager is not None and opos != self.document.ypos: - self.manager.internal_link_clicked(opos) self.manager.scrolled(self.scroll_fraction) + self.manager.internal_link_clicked(prev_pos) return ret # }}} diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py index 966962e326..017395cff9 100644 --- a/src/calibre/gui2/viewer/main.py +++ b/src/calibre/gui2/viewer/main.py @@ -546,9 +546,8 @@ class EbookViewer(MainWindow): if self.view.search(text, backwards=backwards): self.scrolled(self.view.scroll_fraction) - def internal_link_clicked(self, frac): - self.update_page_number() # Ensure page number is accurate as it is used for history - self.history.add(self.pos.value()) + def internal_link_clicked(self, prev_pos): + self.history.add(prev_pos) def link_clicked(self, url): path = os.path.abspath(unicode(url.toLocalFile())) @@ -692,6 +691,7 @@ class EbookViewer(MainWindow): def update_page_number(self): self.set_page_number(self.view.document.scroll_fraction) + return self.pos.value() def close_progress_indicator(self): self.pi.stop()