aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickabstractbutton.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quicktemplates2/qquickabstractbutton.cpp')
-rw-r--r--src/quicktemplates2/qquickabstractbutton.cpp11
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();