diff options
Diffstat (limited to 'src/widgets/kernel/qinputcontext.cpp')
-rw-r--r-- | src/widgets/kernel/qinputcontext.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/widgets/kernel/qinputcontext.cpp b/src/widgets/kernel/qinputcontext.cpp index 7c16234cdd..5bc37568be 100644 --- a/src/widgets/kernel/qinputcontext.cpp +++ b/src/widgets/kernel/qinputcontext.cpp @@ -172,7 +172,13 @@ QInputContext::~QInputContext() */ QWidget *QInputContext::focusWidget() const { - return qobject_cast<QWidget *>(qApp->inputPanel()->inputItem()); + bool enabled = false; + if (qApp->focusWidget()) { + QInputMethodQueryEvent query(Qt::ImEnabled); + QGuiApplication::sendEvent(qApp->focusWidget(), &query); + enabled = query.value(Qt::ImEnabled).toBool(); + } + return enabled ? qobject_cast<QWidget *>(qApp->focusWidget()) : 0; } @@ -186,7 +192,7 @@ QWidget *QInputContext::focusWidget() const */ void QInputContext::setFocusWidget(QWidget *widget) { - qApp->inputPanel()->setInputItem(widget); + // not honored } /*! |