summaryrefslogtreecommitdiffstats
path: root/src/imports/compositor/qwaylandmousetracker.cpp
diff options
context:
space:
mode:
authorJohan Klokkhammer Helsing <johan.helsing@qt.io>2016-05-10 10:38:50 +0200
committerJohan Helsing <johan.helsing@qt.io>2016-05-13 08:09:33 +0000
commitf9939dd4155063d381b340b4b0b2f14e2f37f620 (patch)
tree61911c2608f5d20903e94b07ada0277241b28647 /src/imports/compositor/qwaylandmousetracker.cpp
parentb623352c62e512d671cda46212d58d4f746dd220 (diff)
Add containsMouse property to QWaylandMouseTracker
This is useful for enabling and disabling the cursorItem when moving the mouse between outputs. Change-Id: I71cb588314a500a263b39986f7ddcde7951c61d0 Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Diffstat (limited to 'src/imports/compositor/qwaylandmousetracker.cpp')
-rw-r--r--src/imports/compositor/qwaylandmousetracker.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/imports/compositor/qwaylandmousetracker.cpp b/src/imports/compositor/qwaylandmousetracker.cpp
index fd6a591ee..e54321f14 100644
--- a/src/imports/compositor/qwaylandmousetracker.cpp
+++ b/src/imports/compositor/qwaylandmousetracker.cpp
@@ -46,6 +46,7 @@ class QWaylandMouseTrackerPrivate : public QQuickItemPrivate
public:
QWaylandMouseTrackerPrivate()
: enableWSCursor(false)
+ , hovered(false)
{
QImage cursorImage(64,64,QImage::Format_ARGB32);
cursorImage.fill(Qt::transparent);
@@ -65,9 +66,19 @@ public:
}
}
+ void setHovered(bool hovered)
+ {
+ Q_Q(QWaylandMouseTracker);
+ if (this->hovered == hovered)
+ return;
+ this->hovered = hovered;
+ emit q->hoveredChanged();
+ }
+
QPointF mousePos;
bool enableWSCursor;
QPixmap cursorPixmap;
+ bool hovered;
};
QWaylandMouseTracker::QWaylandMouseTracker(QQuickItem *parent)
@@ -110,6 +121,12 @@ bool QWaylandMouseTracker::enableWSCursor() const
return d->enableWSCursor;
}
+bool QWaylandMouseTracker::hovered() const
+{
+ Q_D(const QWaylandMouseTracker);
+ return d->hovered;
+}
+
bool QWaylandMouseTracker::childMouseEventFilter(QQuickItem *item, QEvent *event)
{
Q_D(QWaylandMouseTracker);
@@ -137,4 +154,18 @@ void QWaylandMouseTracker::hoverMoveEvent(QHoverEvent *event)
d->handleMousePos(event->posF());
}
+void QWaylandMouseTracker::hoverEnterEvent(QHoverEvent *event)
+{
+ Q_D(QWaylandMouseTracker);
+ Q_UNUSED(event);
+ d->setHovered(true);
+}
+
+void QWaylandMouseTracker::hoverLeaveEvent(QHoverEvent *event)
+{
+ Q_D(QWaylandMouseTracker);
+ Q_UNUSED(event);
+ d->setHovered(false);
+}
+
QT_END_NAMESPACE