summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@theqtcompany.com>2016-05-12 09:56:40 +0200
committerPaul Olav Tvete <paul.tvete@theqtcompany.com>2016-05-12 12:41:03 +0000
commitec03a06576d13c6984797936e1c8c2b68f46799a (patch)
tree0365070b35160bf188c3948725814e511c99ec07
parentc07dc0c5cd138db2f222c6c58bc5778532cecf42 (diff)
Let inputEventsEnabled control mouse press/release
...in addition to hover events Change-Id: Ibf434acc5e39637dd701f52d867d582339b93de3 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
-rw-r--r--src/compositor/compositor_api/qwaylandquickitem.cpp3
-rw-r--r--src/compositor/compositor_api/qwaylandquickitem_p.h21
2 files changed, 15 insertions, 9 deletions
diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp
index f79e61934..7a044b855 100644
--- a/src/compositor/compositor_api/qwaylandquickitem.cpp
+++ b/src/compositor/compositor_api/qwaylandquickitem.cpp
@@ -1083,8 +1083,7 @@ void QWaylandQuickItem::setInputEventsEnabled(bool enabled)
{
Q_D(QWaylandQuickItem);
if (d->inputEventsEnabled != enabled) {
- d->inputEventsEnabled = enabled;
- setAcceptHoverEvents(enabled);
+ d->setInputEventsEnabled(enabled);
emit inputEventsEnabledChanged();
}
}
diff --git a/src/compositor/compositor_api/qwaylandquickitem_p.h b/src/compositor/compositor_api/qwaylandquickitem_p.h
index 5c953771e..679d218ee 100644
--- a/src/compositor/compositor_api/qwaylandquickitem_p.h
+++ b/src/compositor/compositor_api/qwaylandquickitem_p.h
@@ -128,19 +128,26 @@ public:
q->setSmooth(true);
- q->setAcceptedMouseButtons(Qt::LeftButton | Qt::MiddleButton | Qt::RightButton |
- Qt::ExtraButton1 | Qt::ExtraButton2 | Qt::ExtraButton3 | Qt::ExtraButton4 |
- Qt::ExtraButton5 | Qt::ExtraButton6 | Qt::ExtraButton7 | Qt::ExtraButton8 |
- Qt::ExtraButton9 | Qt::ExtraButton10 | Qt::ExtraButton11 |
- Qt::ExtraButton12 | Qt::ExtraButton13);
- q->setAcceptHoverEvents(true);
-
+ setInputEventsEnabled(true);
QObject::connect(q, &QQuickItem::windowChanged, q, &QWaylandQuickItem::updateWindow);
QObject::connect(view.data(), &QWaylandView::surfaceChanged, q, &QWaylandQuickItem::surfaceChanged);
QObject::connect(view.data(), &QWaylandView::surfaceChanged, q, &QWaylandQuickItem::handleSurfaceChanged);
QObject::connect(view.data(), &QWaylandView::surfaceDestroyed, q, &QWaylandQuickItem::surfaceDestroyed);
}
+
+ void setInputEventsEnabled(bool enable)
+ {
+ Q_Q(QWaylandQuickItem);
+ q->setAcceptedMouseButtons(enable ? (Qt::LeftButton | Qt::MiddleButton | Qt::RightButton |
+ Qt::ExtraButton1 | Qt::ExtraButton2 | Qt::ExtraButton3 | Qt::ExtraButton4 |
+ Qt::ExtraButton5 | Qt::ExtraButton6 | Qt::ExtraButton7 | Qt::ExtraButton8 |
+ Qt::ExtraButton9 | Qt::ExtraButton10 | Qt::ExtraButton11 |
+ Qt::ExtraButton12 | Qt::ExtraButton13) : Qt::NoButton);
+ q->setAcceptHoverEvents(enable);
+ inputEventsEnabled = enable;
+ }
+
bool shouldSendInputEvents() const { return view->surface() && inputEventsEnabled; }
int scaleFactor() const { return view->output() ? view->output()->scaleFactor() : 1; }