summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/widgets/qabstractbutton.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/widgets/widgets/qabstractbutton.cpp b/src/widgets/widgets/qabstractbutton.cpp
index 965278265a..e413b3b87a 100644
--- a/src/widgets/widgets/qabstractbutton.cpp
+++ b/src/widgets/widgets/qabstractbutton.cpp
@@ -1293,8 +1293,10 @@ void QAbstractButton::focusInEvent(QFocusEvent *e)
void QAbstractButton::focusOutEvent(QFocusEvent *e)
{
Q_D(QAbstractButton);
- if (e->reason() != Qt::PopupFocusReason)
+ if (e->reason() != Qt::PopupFocusReason && d->down) {
d->down = false;
+ d->emitReleased();
+ }
QWidget::focusOutEvent(e);
}
@@ -1304,8 +1306,10 @@ void QAbstractButton::changeEvent(QEvent *e)
Q_D(QAbstractButton);
switch (e->type()) {
case QEvent::EnabledChange:
- if (!isEnabled())
- setDown(false);
+ if (!isEnabled() && d->down) {
+ d->down = false;
+ d->emitReleased();
+ }
break;
default:
d->sizeHint = QSize();