From 51c55285c336ec14c0dcc507a75981d02d684d2d Mon Sep 17 00:00:00 2001 From: Seoyeon Kim Date: Fri, 7 Apr 2017 17:14:58 +0900 Subject: [PATCH] Fix IME (key input) issues on Text control - There needs to hide the keyboard after focusing out the cursor using ecore_imf_context_input_panel_hide( imfContext ) API. - There is a crash issue when the key is up on Text control, because there were not defined imf_event.dev_name, dev_class, and dev_subclass. So, set the empty string in dev_name same as ecoreKeyDownEvent Change-Id: I35c3989b4dfee097bc1121ab247675559458ec9a Signed-off-by: Seoyeon Kim --- adaptors/ecore/wayland/event-handler-ecore-wl.cpp | 5 +++++ adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp | 1 + 2 files changed, 6 insertions(+) diff --git a/adaptors/ecore/wayland/event-handler-ecore-wl.cpp b/adaptors/ecore/wayland/event-handler-ecore-wl.cpp index 8461a44..f92fbdb 100644 --- a/adaptors/ecore/wayland/event-handler-ecore-wl.cpp +++ b/adaptors/ecore/wayland/event-handler-ecore-wl.cpp @@ -479,6 +479,11 @@ struct EventHandler::Impl ecoreKeyUpEvent.timestamp = keyEvent->timestamp; ecoreKeyUpEvent.modifiers = EcoreInputModifierToEcoreIMFModifier ( keyEvent->modifiers ); ecoreKeyUpEvent.locks = (Ecore_IMF_Keyboard_Locks) ECORE_IMF_KEYBOARD_LOCK_NONE; +#ifdef ECORE_IMF_1_13 + ecoreKeyUpEvent.dev_name = ""; + ecoreKeyUpEvent.dev_class = ECORE_IMF_DEVICE_CLASS_KEYBOARD; + ecoreKeyUpEvent.dev_subclass = ECORE_IMF_DEVICE_SUBCLASS_NONE; +#endif // ECORE_IMF_1_13 eventHandled = ecore_imf_context_filter_event( imfContext, ECORE_IMF_EVENT_KEY_UP, diff --git a/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp b/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp index 8879894..95de164 100644 --- a/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp +++ b/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp @@ -396,6 +396,7 @@ void ImfManager::Deactivate() Reset(); ecore_imf_context_focus_out( mIMFContext ); + ecore_imf_context_input_panel_hide( mIMFContext ); } // Reset mIdleCallbackConnected -- 2.7.4