summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/controls/qquickmenupopupwindow.cpp7
-rw-r--r--src/controls/qquickmenupopupwindow_p.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/controls/qquickmenupopupwindow.cpp b/src/controls/qquickmenupopupwindow.cpp
index 8d821d84..670ad6aa 100644
--- a/src/controls/qquickmenupopupwindow.cpp
+++ b/src/controls/qquickmenupopupwindow.cpp
@@ -148,6 +148,13 @@ void QQuickMenuPopupWindow::updatePosition()
setGeometry(newPos.x(), newPos.y(), width(), height());
}
+void QQuickMenuPopupWindow::focusInEvent(QFocusEvent *e)
+{
+ QQuickWindow::focusInEvent(e);
+ if (m_menu && m_menu->menuContentItem())
+ m_menu->menuContentItem()->forceActiveFocus();
+}
+
void QQuickMenuPopupWindow::exposeEvent(QExposeEvent *e)
{
// the popup will reposition at the last moment, so its
diff --git a/src/controls/qquickmenupopupwindow_p.h b/src/controls/qquickmenupopupwindow_p.h
index 5cff75af..abee1f83 100644
--- a/src/controls/qquickmenupopupwindow_p.h
+++ b/src/controls/qquickmenupopupwindow_p.h
@@ -68,6 +68,7 @@ Q_SIGNALS:
void willBeDeletedLater();
protected:
+ void focusInEvent(QFocusEvent *);
void exposeEvent(QExposeEvent *);
bool shouldForwardEventAfterDismiss(QMouseEvent *) const;