summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gui/itemviews/qabstractitemview.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index 159a997..6e24c85 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -61,6 +61,9 @@
#ifndef QT_NO_ACCESSIBILITY
#include <qaccessible.h>
#endif
+#ifdef QT_KEYPAD_NAVIGATION
+#include <private/qsoftkeystack_p.h>
+#endif
QT_BEGIN_NAMESPACE
@@ -2003,16 +2006,19 @@ void QAbstractItemView::keyPressEvent(QKeyEvent *event)
if (QApplication::keypadNavigationEnabled()) {
if (!hasEditFocus()) {
setEditFocus(true);
+ QKeyEventSoftKey::addSoftKey(QSoftKeyAction::Back, Qt::Key_Back, this);
return;
}
}
break;
case Qt::Key_Back:
- case Qt::Key_Context2: // TODO: aportale, remove KEYPAD_NAVIGATION_HACK when softkey support is there
- if (QApplication::keypadNavigationEnabled() && hasEditFocus())
+ if (QApplication::keypadNavigationEnabled() && hasEditFocus()) {
+ if (QSoftKeyStack *stack = QSoftKeyStack::softKeyStackOfWidget(this))
+ stack->pop();
setEditFocus(false);
- else
+ } else {
event->ignore();
+ }
return;
default:
if (QApplication::keypadNavigationEnabled() && !hasEditFocus()) {