From 35c8ad7957aed842e1aba60df96e50c5e2dcf133 Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Fri, 3 Aug 2012 16:50:24 +1000 Subject: Fix pasting with the middle button in TextInput and TextEdit. Neither item accepted the middle button which prevented the mouse events ever reaching them. Change-Id: Ia8f693099df4d6c248976453d554fef96d1d3b33 Reviewed-by: Martin Jones --- src/quick/items/qquicktextcontrol.cpp | 6 ++++-- src/quick/items/qquicktextedit.cpp | 8 +++++++- src/quick/items/qquicktextinput.cpp | 8 +++++++- 3 files changed, 18 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/quick/items/qquicktextcontrol.cpp b/src/quick/items/qquicktextcontrol.cpp index af3f509f5b..dc61b36d4e 100644 --- a/src/quick/items/qquicktextcontrol.cpp +++ b/src/quick/items/qquicktextcontrol.cpp @@ -974,7 +974,7 @@ void QQuickTextControlPrivate::mousePressEvent(QMouseEvent *e, const QPointF &po { Q_Q(QQuickTextControl); - mousePressed = (interactionFlags & Qt::TextSelectableByMouse); + mousePressed = (interactionFlags & Qt::TextSelectableByMouse) && (e->button() & Qt::LeftButton); mousePressPos = pos.toPoint(); if (sendMouseEventToInputContext(e, pos)) @@ -989,7 +989,9 @@ void QQuickTextControlPrivate::mousePressEvent(QMouseEvent *e, const QPointF &po cursor.clearSelection(); } } - if (!(e->button() & Qt::LeftButton)) { + if (e->button() & Qt::MiddleButton) { + return; + } else if (!(e->button() & Qt::LeftButton)) { e->ignore(); return; } else if (!(interactionFlags & (Qt::TextSelectableByMouse | Qt::TextEditable))) { diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index 4d1eb61581..2855070d4a 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -1748,7 +1748,13 @@ void QQuickTextEditPrivate::init() { Q_Q(QQuickTextEdit); - q->setAcceptedMouseButtons(Qt::LeftButton); +#ifndef QT_NO_CLIPBOARD + if (QGuiApplication::clipboard()->supportsSelection()) + q->setAcceptedMouseButtons(Qt::LeftButton | Qt::MiddleButton); + else +#endif + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFlag(QQuickItem::ItemAcceptsInputMethod); q->setFlag(QQuickItem::ItemHasContents); diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index ced2e62a8c..54cea8b9ce 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -2466,7 +2466,13 @@ bool QQuickTextInput::isInputMethodComposing() const void QQuickTextInputPrivate::init() { Q_Q(QQuickTextInput); - q->setAcceptedMouseButtons(Qt::LeftButton); +#ifndef QT_NO_CLIPBOARD + if (QGuiApplication::clipboard()->supportsSelection()) + q->setAcceptedMouseButtons(Qt::LeftButton | Qt::MiddleButton); + else +#endif + q->setAcceptedMouseButtons(Qt::LeftButton); + q->setFlag(QQuickItem::ItemAcceptsInputMethod); q->setFlag(QQuickItem::ItemHasContents); #ifndef QT_NO_CLIPBOARD -- cgit v1.2.3