diff options
author | Gatis Paeglis <gatis.paeglis@qt.io> | 2019-03-15 11:56:01 +0100 |
---|---|---|
committer | Gatis Paeglis <gatis.paeglis@qt.io> | 2019-04-26 19:03:58 +0000 |
commit | d6e65ecac5852ed09fbf580b3fab5b21125dfd69 (patch) | |
tree | e5816511eb100b30a3f603f2341d8b5e5de082b3 /src | |
parent | 902ae438aa7950fa6fec4823f80974e8bc8be8be (diff) |
platforminputcontexts: future-proof compose plugin
If this plugin is loaded at some later point during application
run-time, the focus object might be nullptr. We can avoid that by
using qApp->focusObject(), when m_focusObject==nullptr;
Task-number: QTBUG-74465
Change-Id: I0d82410ed557ea1a8fde28a1807f790854951cda
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp index 57fe7c2fa2..4e9828663f 100644 --- a/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp +++ b/src/plugins/platforminputcontexts/compose/qcomposeplatforminputcontext.cpp @@ -40,6 +40,7 @@ #include <QtCore/QCoreApplication> #include <QtGui/QKeyEvent> +#include <QtGui/QGuiApplication> #include <locale.h> @@ -121,7 +122,14 @@ bool QComposeInputContext::filterEvent(const QEvent *event) QInputMethodEvent event; event.setCommitString(composedText); - QCoreApplication::sendEvent(m_focusObject, &event); + + if (!m_focusObject && qApp) + m_focusObject = qApp->focusObject(); + + if (m_focusObject) + QCoreApplication::sendEvent(m_focusObject, &event); + else + qCWarning(lcXkbCompose, "no focus object"); reset(); return true; |