diff options
| -rw-r--r-- | src/plugins/platforms/wasm/qwasminputcontext.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/plugins/platforms/wasm/qwasminputcontext.cpp b/src/plugins/platforms/wasm/qwasminputcontext.cpp index 27641195cae..2df7066b8e2 100644 --- a/src/plugins/platforms/wasm/qwasminputcontext.cpp +++ b/src/plugins/platforms/wasm/qwasminputcontext.cpp @@ -383,6 +383,16 @@ void QWasmInputContext::setFocusObject(QObject *object) { qCDebug(qLcQpaWasmInputContext) << Q_FUNC_INFO << object << inputMethodAccepted(); + QInputMethodQueryEvent query(Qt::InputMethodQueries(Qt::ImEnabled | Qt::ImHints)); + QCoreApplication::sendEvent(object, &query); + if (query.value(Qt::ImEnabled).toBool() + && Qt::InputMethodHints(query.value(Qt::ImHints).toInt()).testFlag(Qt::ImhHiddenText)) { + m_inputElement.set("type", "password"); + } else { + if (m_inputElement["type"].as<std::string>() != std::string("text")) + m_inputElement.set("type", "text"); + } + // Commit the previous composition before change m_focusObject if (m_focusObject && !m_preeditString.isEmpty()) commitPreeditAndClear(); |
