summaryrefslogtreecommitdiffstats
path: root/src/widget/wpushbutton.cpp
diff options
context:
space:
mode:
authorDaniel Schürmann <daschuer@mixxx.org>2020-11-19 21:07:47 +0100
committerDaniel Schürmann <daschuer@mixxx.org>2020-11-19 21:07:47 +0100
commita989e9a764eb8e662deb7b720b4cdbe3bc6a2af6 (patch)
tree905d52f99ca8d6e3dbc89e298d8fd04f1308189d /src/widget/wpushbutton.cpp
parenta76433f45f2d87c2dfedb23181940582370d5491 (diff)
Avoid hotcue buttons from being stucked in the pressed state
Diffstat (limited to 'src/widget/wpushbutton.cpp')
-rw-r--r--src/widget/wpushbutton.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/widget/wpushbutton.cpp b/src/widget/wpushbutton.cpp
index dface204ba..7233d954fb 100644
--- a/src/widget/wpushbutton.cpp
+++ b/src/widget/wpushbutton.cpp
@@ -436,6 +436,20 @@ bool WPushButton::event(QEvent* e) {
m_bHovered = true;
restyleAndRepaint();
} else if (e->type() == QEvent::Leave) {
+ if (m_bPressed) {
+ // A Leave event is send instead of a mouseReleaseEvent()
+ // fake it to get not stucked in pressed state
+ QMouseEvent mouseEvent = QMouseEvent(
+ QEvent::MouseButtonRelease,
+ QPointF(),
+ QPointF(),
+ QPointF(),
+ Qt::LeftButton,
+ Qt::NoButton,
+ 0,
+ Qt::MouseEventSynthesizedByApplication);
+ mouseReleaseEvent(&mouseEvent);
+ }
m_bHovered = false;
restyleAndRepaint();
}