diff --git a/src/calibre/gui2/viewer/documentview.py b/src/calibre/gui2/viewer/documentview.py index fcd02e5e1b..4661bc4899 100644 --- a/src/calibre/gui2/viewer/documentview.py +++ b/src/calibre/gui2/viewer/documentview.py @@ -979,6 +979,11 @@ class DocumentView(QWebView): # {{{ return ret def keyPressEvent(self, event): + if not self.handle_key_press(event): + return QWebView.keyPressEvent(self, event) + + def handle_key_press(self, event): + handled = True key = self.shortcuts.get_match(event) func = self.goto_location_actions.get(key, None) if func is not None: @@ -996,7 +1001,8 @@ class DocumentView(QWebView): # {{{ elif key == 'Right': self.scroll_by(x=15) else: - return QWebView.keyPressEvent(self, event) + handled = False + return handled def resizeEvent(self, event): ret = QWebView.resizeEvent(self, event) diff --git a/src/calibre/gui2/viewer/main.py b/src/calibre/gui2/viewer/main.py index 5e3d9908c1..f0c67b0b49 100644 --- a/src/calibre/gui2/viewer/main.py +++ b/src/calibre/gui2/viewer/main.py @@ -755,6 +755,12 @@ class EbookViewer(MainWindow, Ui_EbookViewer): if self.current_index > 0: self.load_path(self.iterator.spine[self.current_index-1], pos=1.0) + def keyPressEvent(self, event): + MainWindow.keyPressEvent(self, event) + if not event.isAccepted(): + if not self.view.handle_key_press(event): + event.ignore() + def __enter__(self): return self