diff options
Diffstat (limited to 'src/plugins/platforms/wasm/qwasminputcontext.cpp')
-rw-r--r-- | src/plugins/platforms/wasm/qwasminputcontext.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/plugins/platforms/wasm/qwasminputcontext.cpp b/src/plugins/platforms/wasm/qwasminputcontext.cpp index 92fc1767d1..ae72e7b7f9 100644 --- a/src/plugins/platforms/wasm/qwasminputcontext.cpp +++ b/src/plugins/platforms/wasm/qwasminputcontext.cpp @@ -49,26 +49,26 @@ QWasmInputContext::QWasmInputContext() m_inputElement.set("style", "position:absolute;left:-1000px;top:-1000px"); // offscreen m_inputElement.set("contenteditable","true"); - if (platform() == Platform::Android || platform() == Platform::Windows) { + if (platform() == Platform::MacOS || platform() == Platform::iOS) { + auto callback = [=](emscripten::val) { + m_inputElement["parentElement"].call<void>("removeChild", m_inputElement); + inputPanelIsOpen = false; + }; + m_blurEventHandler.reset(new EventCallback(m_inputElement, "blur", callback)); + + } else { + const std::string inputType = platform() == Platform::Windows ? "textInput" : "input"; document.call<void>("addEventListener", inputType, - emscripten::val::module_property("qtInputContextCallback"), - emscripten::val(false)); + emscripten::val::module_property("qtInputContextCallback"), + emscripten::val(false)); m_inputElement.set("data-qinputcontext", emscripten::val(quintptr(reinterpret_cast<void *>(this)))); emscripten::val body = document["body"]; body.call<void>("appendChild", m_inputElement); } - if (platform() == Platform::MacOS || platform() == Platform::iOS) { - auto callback = [=](emscripten::val) { - m_inputElement["parentElement"].call<void>("removeChild", m_inputElement); - inputPanelIsOpen = false; - }; - m_blurEventHandler.reset(new EventCallback(m_inputElement, "blur", callback)); - } - QObject::connect(qGuiApp, &QGuiApplication::focusWindowChanged, this, &QWasmInputContext::focusWindowChanged); } |