diff --git a/src/calibre/gui2/tweak_book/diff/main.py b/src/calibre/gui2/tweak_book/diff/main.py index 2a0a6072a9..6b1328c805 100644 --- a/src/calibre/gui2/tweak_book/diff/main.py +++ b/src/calibre/gui2/tweak_book/diff/main.py @@ -231,6 +231,10 @@ class Diff(Dialog): kwargs = {'syntax':syntax_map.get(name, None), 'context':self.context} add(args, kwargs) + def keyPressEvent(self, ev): + if not self.view.handle_key(ev): + return Dialog.keyPressEvent(self, ev) + if __name__ == '__main__': import sys app = QApplication([]) diff --git a/src/calibre/gui2/tweak_book/diff/view.py b/src/calibre/gui2/tweak_book/diff/view.py index ec6506ed31..5bf9b68066 100644 --- a/src/calibre/gui2/tweak_book/diff/view.py +++ b/src/calibre/gui2/tweak_book/diff/view.py @@ -910,7 +910,7 @@ class DiffView(QWidget): # {{{ self.changes, self.delta = changes, delta self.adjust_range() - def keyPressEvent(self, ev): + def handle_key(self, ev): amount, d = None, 1 key = ev.key() if key in (Qt.Key_Up, Qt.Key_Down, Qt.Key_J, Qt.Key_K): @@ -923,8 +923,11 @@ class DiffView(QWidget): # {{{ d = -1 elif key in (Qt.Key_Home, Qt.Key_End): self.scrollbar.setValue(0 if key == Qt.Key_Home else self.scrollbar.maximum()) + return True if amount is not None: self.scrollbar.setValue(self.scrollbar.value() + d * amount) + return True + return False # }}}