From f0c3256e39fbaafd86f3b729055f3e010bebe891 Mon Sep 17 00:00:00 2001 From: Abdo Date: Tue, 6 Dec 2022 13:03:34 +0300 Subject: [PATCH] Fix Esc not closing TS pages (#2240) --- qt/aqt/data/web/js/webview.ts | 6 ++---- qt/aqt/webview.py | 13 +++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) 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]