diff options
Diffstat (limited to 'src/quicktemplates2/qquickabstractbutton.cpp')
-rw-r--r-- | src/quicktemplates2/qquickabstractbutton.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/quicktemplates2/qquickabstractbutton.cpp b/src/quicktemplates2/qquickabstractbutton.cpp index 3b41f34c..a2992191 100644 --- a/src/quicktemplates2/qquickabstractbutton.cpp +++ b/src/quicktemplates2/qquickabstractbutton.cpp @@ -201,6 +201,11 @@ void QQuickAbstractButtonPrivate::handleUngrab() emit q->canceled(); } +bool QQuickAbstractButtonPrivate::acceptKeyClick(Qt::Key key) const +{ + return key == Qt::Key_Space; +} + bool QQuickAbstractButtonPrivate::isPressAndHoldConnected() { Q_Q(QQuickAbstractButton); @@ -449,7 +454,9 @@ QQuickAbstractButton::~QQuickAbstractButton() d->removeImplicitSizeListener(d->indicator); if (d->group) d->group->removeButton(this); +#if QT_CONFIG(shortcut) d->ungrabShortcut(); +#endif } /*! @@ -1029,7 +1036,7 @@ void QQuickAbstractButton::keyPressEvent(QKeyEvent *event) { Q_D(QQuickAbstractButton); QQuickControl::keyPressEvent(event); - if (event->key() == Qt::Key_Space) { + if (d->acceptKeyClick(static_cast<Qt::Key>(event->key()))) { d->setPressPoint(QPoint(qRound(width() / 2), qRound(height() / 2))); setPressed(true); @@ -1045,7 +1052,7 @@ void QQuickAbstractButton::keyReleaseEvent(QKeyEvent *event) { Q_D(QQuickAbstractButton); QQuickControl::keyReleaseEvent(event); - if (event->key() == Qt::Key_Space) { + if (d->acceptKeyClick(static_cast<Qt::Key>(event->key()))) { setPressed(false); nextCheckState(); |