From dc6ebca9447ae5129c389a01244f61174ad19a71 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Fri, 2 Mar 2018 11:16:02 +1000 Subject: [PATCH] filter middle click pastes --- aqt/editor.py | 10 ++++++++-- aqt/webview.py | 8 ++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/aqt/editor.py b/aqt/editor.py index 67541d567..dca91bd77 100644 --- a/aqt/editor.py +++ b/aqt/editor.py @@ -789,14 +789,20 @@ class EditorWebView(AnkiWebView): def onCopy(self): self.triggerPageAction(QWebEnginePage.Copy) - def onPaste(self): + def _onPaste(self, mode): extended = self.editor.mw.app.queryKeyboardModifiers() & Qt.ShiftModifier - mime = self.editor.mw.app.clipboard().mimeData(mode=QClipboard.Clipboard) + mime = self.editor.mw.app.clipboard().mimeData(mode=mode) html, internal = self._processMime(mime) if not html: return self.editor.doPaste(html, internal, extended) + def onPaste(self): + self._onPaste(QClipboard.Clipboard) + + def onMiddleClickPaste(self): + self._onPaste(QClipboard.Selection) + def dropEvent(self, evt): mime = evt.mimeData() diff --git a/aqt/webview.py b/aqt/webview.py index 815628e75..3263db643 100644 --- a/aqt/webview.py +++ b/aqt/webview.py @@ -108,6 +108,11 @@ class AnkiWebView(QWebEngineView): # disable pinch to zoom gesture if isinstance(evt, QNativeGestureEvent): return True + elif evt.type() == QEvent.MouseButtonRelease: + if evt.button() == Qt.MidButton and isLin: + self.onMiddleClickPaste() + return True + return False return False def onEsc(self): @@ -133,6 +138,9 @@ class AnkiWebView(QWebEngineView): def onPaste(self): self.triggerPageAction(QWebEnginePage.Paste) + def onMiddleClickPaste(self): + self.triggerPageAction(QWebEnginePage.Paste) + def onSelectAll(self): self.triggerPageAction(QWebEnginePage.SelectAll)