diff options
author | Richard Moe Gustavsen <richard.gustavsen@qt.io> | 2021-03-06 15:07:43 +0100 |
---|---|---|
committer | Richard Moe Gustavsen <richard.gustavsen@qt.io> | 2021-03-11 22:00:26 +0100 |
commit | bb3c62332c268b27bf07282ec9925655ebe8cbe6 (patch) | |
tree | d5bb11f88c211b8d276bfe7daf353886c2ccc453 /src/quick/handlers | |
parent | 35a0c2552f17e40d3584af422a3c5fe75c700d0f (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.cpp | 16 | ||||
-rw-r--r-- | src/quick/handlers/qquickhoverhandler_p.h | 2 |
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: |