From bb713802fdf5912e2ee4234654c61f83d789b561 Mon Sep 17 00:00:00 2001 From: "dongsug.song" Date: Tue, 27 Feb 2024 14:14:24 +0900 Subject: [PATCH] Fixing the issue of Korean input not working in the IME within WebView Change-Id: Id4bab0196dcb20a27fbdf8dd514ab26773f86f54 --- .../tizen-web-engine-chromium.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/dali-extension/web-engine-chromium/tizen-web-engine-chromium.cpp b/dali-extension/web-engine-chromium/tizen-web-engine-chromium.cpp index f6c821a..de6273c 100644 --- a/dali-extension/web-engine-chromium/tizen-web-engine-chromium.cpp +++ b/dali-extension/web-engine-chromium/tizen-web-engine-chromium.cpp @@ -32,6 +32,7 @@ #include #include +#include #include #include @@ -639,18 +640,30 @@ bool TizenWebEngineChromium::SendKeyEvent(const Dali::KeyEvent& keyEvent) { Evas_Event_Key_Down downEvent; memset(&downEvent, 0, sizeof(Evas_Event_Key_Down)); - downEvent.key = keyEvent.GetKeyName().c_str(); + downEvent.key = keyEvent.GetKeyName().c_str(); downEvent.string = keyEvent.GetKeyString().c_str(); - evasKeyEvent = static_cast(&downEvent); + downEvent.keycode = keyEvent.GetKeyCode(); + Evas* evas = ecore_evas_get(WebEngineManager::Get().GetWindow()); + ecore_event_evas_modifier_lock_update(evas, (unsigned int)keyEvent.GetKeyModifier()); + downEvent.modifiers = const_cast(evas_key_modifier_get(evas)); + downEvent.locks = const_cast(evas_key_lock_get(evas)); + + evasKeyEvent = static_cast(&downEvent); ewk_view_send_key_event(mWebView, evasKeyEvent, true); } else { Evas_Event_Key_Up upEvent; memset(&upEvent, 0, sizeof(Evas_Event_Key_Up)); - upEvent.key = keyEvent.GetKeyName().c_str(); + upEvent.key = keyEvent.GetKeyName().c_str(); upEvent.string = keyEvent.GetKeyString().c_str(); - evasKeyEvent = static_cast(&upEvent); + upEvent.keycode = keyEvent.GetKeyCode(); + Evas* evas = ecore_evas_get(WebEngineManager::Get().GetWindow()); + ecore_event_evas_modifier_lock_update(evas, (unsigned int)keyEvent.GetKeyModifier()); + upEvent.modifiers = const_cast(evas_key_modifier_get(evas)); + upEvent.locks = const_cast(evas_key_lock_get(evas)); + + evasKeyEvent = static_cast(&upEvent); ewk_view_send_key_event(mWebView, evasKeyEvent, false); } return false; -- 2.7.4