diff --git a/qt/aqt/data/web/js/webview.ts b/qt/aqt/data/web/js/webview.ts index 59f904fb1..6c812bef8 100644 --- a/qt/aqt/data/web/js/webview.ts +++ b/qt/aqt/data/web/js/webview.ts @@ -1,11 +1,9 @@ /* Copyright: Ankitects Pty Ltd and contributors * License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html */ +// prevent backspace key from going back a page document.addEventListener("keydown", function(evt: KeyboardEvent) { - if (evt.keyCode === 27) { - pycmd("close"); - } // prevent backspace key from going back a page - else if (evt.keyCode !== 8) { + if (evt.keyCode !== 8) { return; } let isText = 0; diff --git a/qt/aqt/webview.py b/qt/aqt/webview.py index c267d82de..fc816093b 100644 --- a/qt/aqt/webview.py +++ b/qt/aqt/webview.py @@ -249,6 +249,19 @@ class AnkiWebView(QWebEngineView): self._filterSet = False gui_hooks.theme_did_change.append(self.on_theme_did_change) + qconnect(self.loadFinished, self._on_load_finished) + + def _on_load_finished(self) -> None: + self.eval( + """ + document.addEventListener("keydown", function(evt) { + if (evt.keyCode === 27) { + pycmd("close"); + } + }); + """ + ) + def set_title(self, title: str) -> None: self.title = title # type: ignore[assignment]