aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/handlers
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@qt.io>2021-03-06 15:07:43 +0100
committerRichard Moe Gustavsen <richard.gustavsen@qt.io>2021-03-11 22:00:26 +0100
commitbb3c62332c268b27bf07282ec9925655ebe8cbe6 (patch)
treed5bb11f88c211b8d276bfe7daf353886c2ccc453 /src/quick/handlers
parent35a0c2552f17e40d3584af422a3c5fe75c700d0f (diff)
QQuickHoverHandler: listen for HoverLeave events
Let HoverHandler listen for HoverLeave events, so that we can explicitly tell it to leave its hovering state from the outside. The new function gets used in a follow up patch. Change-Id: Ieaaeb7dc4e4afc96bb60c7abfd34f2c2c09bef47 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/quick/handlers')
-rw-r--r--src/quick/handlers/qquickhoverhandler.cpp16
-rw-r--r--src/quick/handlers/qquickhoverhandler_p.h2
2 files changed, 18 insertions, 0 deletions
diff --git a/src/quick/handlers/qquickhoverhandler.cpp b/src/quick/handlers/qquickhoverhandler.cpp
index c105bf6537..a22d5ddcae 100644
--- a/src/quick/handlers/qquickhoverhandler.cpp
+++ b/src/quick/handlers/qquickhoverhandler.cpp
@@ -83,6 +83,22 @@ QQuickHoverHandler::~QQuickHoverHandler()
QQuickItemPrivate::get(parent)->setHasHoverInChild(false);
}
+bool QQuickHoverHandler::event(QEvent *event)
+{
+ switch (event->type())
+ {
+ case QEvent::HoverLeave:
+ setHovered(false);
+ setActive(false);
+ break;
+ default:
+ return QQuickSinglePointHandler::event(event);
+ break;
+ }
+
+ return true;
+}
+
void QQuickHoverHandler::componentComplete()
{
parentItem()->setAcceptHoverEvents(true);
diff --git a/src/quick/handlers/qquickhoverhandler_p.h b/src/quick/handlers/qquickhoverhandler_p.h
index fe9a3bcde3..8d87a36727 100644
--- a/src/quick/handlers/qquickhoverhandler_p.h
+++ b/src/quick/handlers/qquickhoverhandler_p.h
@@ -69,6 +69,8 @@ public:
explicit QQuickHoverHandler(QQuickItem *parent = nullptr);
~QQuickHoverHandler();
+ bool event(QEvent *) override;
+
bool isHovered() const { return m_hovered; }
Q_SIGNALS: