From 636b5e697b52eca7631e44d0afe3c4097f192c20 Mon Sep 17 00:00:00 2001 From: Joogab Yun Date: Mon, 27 Aug 2018 13:09:51 +0900 Subject: [PATCH] [Tizen] Fix to get KeyEvent information correctly This reverts commit fef5e385b6ff8cb9da84cc23980d04fc615932d1. Change-Id: I1b2e4ef0f1a8dd78d3b7c63f43b2c24a0e431fa4 --- .../tizen-wayland/input-method-context-impl-ecore-wl.cpp | 14 ++++++++++---- .../input/ubuntu-x11/input-method-context-impl-x.cpp | 8 ++++++-- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/dali/internal/input/tizen-wayland/input-method-context-impl-ecore-wl.cpp b/dali/internal/input/tizen-wayland/input-method-context-impl-ecore-wl.cpp index ff46c94..b043d32 100755 --- a/dali/internal/input/tizen-wayland/input-method-context-impl-ecore-wl.cpp +++ b/dali/internal/input/tizen-wayland/input-method-context-impl-ecore-wl.cpp @@ -946,16 +946,19 @@ bool InputMethodContextEcoreWl::ProcessEventKeyDown( const KeyEvent& keyEvent ) bool eventHandled( false ); if ( mIMFContext ) { + std::string compose = keyEvent.GetCompose(); + std::string deviceName = keyEvent.GetDeviceName(); + // We're consuming key down event so we have to pass to InputMethodContext so that it can parse it as well. Ecore_IMF_Event_Key_Down ecoreKeyDownEvent; ecoreKeyDownEvent.keyname = keyEvent.keyPressedName.c_str(); ecoreKeyDownEvent.key = keyEvent.keyPressedName.c_str(); ecoreKeyDownEvent.string = keyEvent.keyPressed.c_str(); - ecoreKeyDownEvent.compose = keyEvent.GetCompose().c_str(); + ecoreKeyDownEvent.compose = compose.c_str(); ecoreKeyDownEvent.timestamp = keyEvent.time; ecoreKeyDownEvent.modifiers = EcoreInputModifierToEcoreIMFModifier( keyEvent.keyModifier ); ecoreKeyDownEvent.locks = EcoreInputModifierToEcoreIMFLock( keyEvent.keyModifier ); - ecoreKeyDownEvent.dev_name = keyEvent.GetDeviceName().c_str(); + ecoreKeyDownEvent.dev_name = deviceName.c_str(); ecoreKeyDownEvent.dev_class = static_cast ( keyEvent.GetDeviceClass() );//ECORE_IMF_DEVICE_CLASS_KEYBOARD; ecoreKeyDownEvent.dev_subclass = static_cast ( keyEvent.GetDeviceSubclass() );//ECORE_IMF_DEVICE_SUBCLASS_NONE; @@ -993,16 +996,19 @@ bool InputMethodContextEcoreWl::ProcessEventKeyUp( const KeyEvent& keyEvent ) bool eventHandled( false ); if( mIMFContext ) { + std::string compose = keyEvent.GetCompose(); + std::string deviceName = keyEvent.GetDeviceName(); + // We're consuming key up event so we have to pass to InputMethodContext so that it can parse it as well. Ecore_IMF_Event_Key_Up ecoreKeyUpEvent; ecoreKeyUpEvent.keyname = keyEvent.keyPressedName.c_str(); ecoreKeyUpEvent.key = keyEvent.keyPressedName.c_str(); ecoreKeyUpEvent.string = keyEvent.keyPressed.c_str(); - ecoreKeyUpEvent.compose = keyEvent.GetCompose().c_str(); + ecoreKeyUpEvent.compose = compose.c_str(); ecoreKeyUpEvent.timestamp = keyEvent.time; ecoreKeyUpEvent.modifiers = EcoreInputModifierToEcoreIMFModifier( keyEvent.keyModifier ); ecoreKeyUpEvent.locks = EcoreInputModifierToEcoreIMFLock( keyEvent.keyModifier ); - ecoreKeyUpEvent.dev_name = keyEvent.GetDeviceName().c_str(); + ecoreKeyUpEvent.dev_name = deviceName.c_str(); ecoreKeyUpEvent.dev_class = static_cast ( keyEvent.GetDeviceClass() );//ECORE_IMF_DEVICE_CLASS_KEYBOARD; ecoreKeyUpEvent.dev_subclass = static_cast ( keyEvent.GetDeviceSubclass() );//ECORE_IMF_DEVICE_SUBCLASS_NONE; diff --git a/dali/internal/input/ubuntu-x11/input-method-context-impl-x.cpp b/dali/internal/input/ubuntu-x11/input-method-context-impl-x.cpp index 3b7fcda..7a28eb3 100755 --- a/dali/internal/input/ubuntu-x11/input-method-context-impl-x.cpp +++ b/dali/internal/input/ubuntu-x11/input-method-context-impl-x.cpp @@ -753,12 +753,14 @@ bool InputMethodContextX::ProcessEventKeyDown( const KeyEvent& keyEvent ) bool eventHandled( false ); if ( mIMFContext ) { + std::string compose = keyEvent.GetCompose(); + // We're consuming key down event so we have to pass to InputMethodContext so that it can parse it as well. Ecore_IMF_Event_Key_Down ecoreKeyDownEvent; ecoreKeyDownEvent.keyname = keyEvent.keyPressedName.c_str(); ecoreKeyDownEvent.key = keyEvent.keyPressedName.c_str(); ecoreKeyDownEvent.string = keyEvent.keyPressed.c_str(); - ecoreKeyDownEvent.compose = keyEvent.GetCompose().c_str(); + ecoreKeyDownEvent.compose = compose.c_str(); ecoreKeyDownEvent.timestamp = keyEvent.time; ecoreKeyDownEvent.modifiers = EcoreInputModifierToEcoreIMFModifier( keyEvent.keyModifier ); ecoreKeyDownEvent.locks = EcoreInputModifierToEcoreIMFLock( keyEvent.keyModifier ); @@ -802,12 +804,14 @@ bool InputMethodContextX::ProcessEventKeyUp( const KeyEvent& keyEvent ) bool eventHandled( false ); if( mIMFContext ) { + std::string compose = keyEvent.GetCompose(); + // We're consuming key up event so we have to pass to InputMethodContext so that it can parse it as well. Ecore_IMF_Event_Key_Up ecoreKeyUpEvent; ecoreKeyUpEvent.keyname = keyEvent.keyPressedName.c_str(); ecoreKeyUpEvent.key = keyEvent.keyPressedName.c_str(); ecoreKeyUpEvent.string = keyEvent.keyPressed.c_str(); - ecoreKeyUpEvent.compose = keyEvent.GetCompose().c_str(); + ecoreKeyUpEvent.compose = compose.c_str(); ecoreKeyUpEvent.timestamp = keyEvent.time; ecoreKeyUpEvent.modifiers = EcoreInputModifierToEcoreIMFModifier( keyEvent.keyModifier ); ecoreKeyUpEvent.locks = EcoreInputModifierToEcoreIMFLock( keyEvent.keyModifier ); -- 2.7.4