diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 92fa12da3..033c30a3e 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -219,6 +219,7 @@ Jakub Fidler Valerie Enfys Julien Chol ikkz +derivativeoflog7 rreemmii-dev babofitos diff --git a/qt/aqt/profiles.py b/qt/aqt/profiles.py index 817e00139..d92d7f59f 100644 --- a/qt/aqt/profiles.py +++ b/qt/aqt/profiles.py @@ -94,6 +94,8 @@ metaConf = dict( defaultLang=None, ) +# Old Anki versions expected these keys to exist. Don't add new ones here - it's better practice +# to always use profile.get(..., defaultValue) instead, as keys may be missing. profileConf: dict[str, Any] = dict( # profile mainWindowGeom=None, @@ -698,6 +700,12 @@ create table if not exists profiles def set_current_sync_url(self, url: str | None) -> None: self.profile["currentSyncUrl"] = url + def middle_click_paste_enabled(self) -> bool: + return self.profile.get("middleClickPasteEnabled", True) + + def set_middle_click_paste_enabled(self, val: bool) -> None: + self.profile["middleClickPasteEnabled"] = val + def custom_sync_url(self) -> str | None: """A custom server provided by the user.""" return self.profile.get("customSyncUrl") diff --git a/qt/aqt/webview.py b/qt/aqt/webview.py index b5b50ad72..f8ea04247 100644 --- a/qt/aqt/webview.py +++ b/qt/aqt/webview.py @@ -350,8 +350,11 @@ class AnkiWebView(QWebEngineView): isinstance(evt, QMouseEvent) and evt.type() == QEvent.Type.MouseButtonRelease ): + from aqt import mw + if evt.button() == Qt.MouseButton.MiddleButton and is_lin: - self.onMiddleClickPaste() + if mw.pm.middle_click_paste_enabled(): + self.onMiddleClickPaste() return True return False