diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index bbdbabc14b..b3552cba68 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -619,6 +619,8 @@ public: QOpenGLContext *shareContext() const; + virtual QObject *focusObject() { return 0; } + #ifndef QT_NO_OPENGL virtual GLuint textureId() const { return 0; } virtual QImage grabFramebuffer() { return QImage(); } diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 463eea4ddc..b31f9a51dd 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -147,6 +147,12 @@ QObject *QWidgetWindow::focusObject() const if (!widget) widget = m_widget; + if (widget) { + QObject *focusObj = QWidgetPrivate::get(widget)->focusObject(); + if (focusObj) + return focusObj; + } + return widget; }