From aaea4066ec9308cd49174141ba4fd0a94f1b7b60 Mon Sep 17 00:00:00 2001 From: Seoyeon Kim Date: Thu, 31 Aug 2017 20:18:59 +0900 Subject: [PATCH] Fix Set and Get InputPanelData() - Fixed SetInputPanelData() and GetInputPanelData() code Change-Id: I9bc9da2093ae86fbea0e343d6c489cfe848e4aa2 Signed-off-by: Seoyeon Kim --- adaptors/devel-api/adaptor-framework/imf-manager.cpp | 8 ++++---- adaptors/devel-api/adaptor-framework/imf-manager.h | 8 ++++++-- adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp | 17 ++++++++++------- adaptors/ecore/wayland/imf-manager-impl.h | 8 ++++---- adaptors/integration-api/x11/imf-manager-impl.h | 8 ++++---- adaptors/wayland/input/text/imf/imf-manager-impl-wl.cpp | 4 ++-- adaptors/wayland/input/text/imf/imf-manager-impl.h | 8 ++++---- adaptors/x11/imf-manager-impl-x.cpp | 17 ++++++++++------- 8 files changed, 44 insertions(+), 34 deletions(-) diff --git a/adaptors/devel-api/adaptor-framework/imf-manager.cpp b/adaptors/devel-api/adaptor-framework/imf-manager.cpp index b1498d2..620fdd1 100644 --- a/adaptors/devel-api/adaptor-framework/imf-manager.cpp +++ b/adaptors/devel-api/adaptor-framework/imf-manager.cpp @@ -108,14 +108,14 @@ void ImfManager::ApplyOptions( const InputMethodOptions& options ) Internal::Adaptor::ImfManager::GetImplementation(*this).ApplyOptions( options ); } -void ImfManager::SetInputPanelUserData( const std::string& data ) +void ImfManager::SetInputPanelData( const std::string& data ) { - Internal::Adaptor::ImfManager::GetImplementation(*this).SetInputPanelUserData( data ); + Internal::Adaptor::ImfManager::GetImplementation(*this).SetInputPanelData( data ); } -void ImfManager::GetInputPanelUserData( std::string& data ) +void ImfManager::GetInputPanelData( std::string& data ) { - Internal::Adaptor::ImfManager::GetImplementation(*this).GetInputPanelUserData( data ); + Internal::Adaptor::ImfManager::GetImplementation(*this).GetInputPanelData( data ); } Dali::ImfManager::State ImfManager::GetInputPanelState() diff --git a/adaptors/devel-api/adaptor-framework/imf-manager.h b/adaptors/devel-api/adaptor-framework/imf-manager.h index c8f20b7..2780d9a 100644 --- a/adaptors/devel-api/adaptor-framework/imf-manager.h +++ b/adaptors/devel-api/adaptor-framework/imf-manager.h @@ -279,13 +279,17 @@ public: * @brief Sets up the input-panel specific data. * @param[in] data The specific data to be set to the input panel */ - void SetInputPanelUserData( const std::string& data ); + void SetInputPanelData( const std::string& data ); /** * @brief Gets the specific data of the current active input panel. + * + * Input Panel Data is not always the data which is set by SetInputPanelData(). + * Data can be changed internally in the input panel. + * It is just used to get a specific data from the input panel to an application. * @param[in] data The specific data to be got from the input panel */ - void GetInputPanelUserData( std::string& data ); + void GetInputPanelData( std::string& data ); /** * @brief Gets the state of the current active input panel. diff --git a/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp b/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp index edd8899..f171016 100644 --- a/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp +++ b/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp @@ -756,25 +756,28 @@ void ImfManager::ApplyOptions( const InputMethodOptions& options ) } } -void ImfManager::SetInputPanelUserData( const std::string& data ) +void ImfManager::SetInputPanelData( const std::string& data ) { - DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::SetInputPanelUserData\n" ); + DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::SetInputPanelData\n" ); if( mIMFContext ) { int length = data.length(); - ecore_imf_context_input_panel_imdata_set( mIMFContext, &data, length ); + ecore_imf_context_input_panel_imdata_set( mIMFContext, data.c_str(), length ); } } -void ImfManager::GetInputPanelUserData( std::string& data ) +void ImfManager::GetInputPanelData( std::string& data ) { - DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::GetInputPanelUserData\n" ); + DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::GetInputPanelData\n" ); if( mIMFContext ) { - int* length = NULL; - ecore_imf_context_input_panel_imdata_get( mIMFContext, &data, length ); + int length = 4096; // The max length is 4096 bytes + Dali::Vector< char > buffer; + buffer.Resize( length ); + ecore_imf_context_input_panel_imdata_get( mIMFContext, &buffer[0], &length ); + data = std::string( buffer.Begin(), buffer.End() ); } } diff --git a/adaptors/ecore/wayland/imf-manager-impl.h b/adaptors/ecore/wayland/imf-manager-impl.h index 59f1b7a..e3a73ad 100644 --- a/adaptors/ecore/wayland/imf-manager-impl.h +++ b/adaptors/ecore/wayland/imf-manager-impl.h @@ -180,14 +180,14 @@ public: void ApplyOptions( const InputMethodOptions& options ); /** - * @copydoc Dali::ImfManager::SetInputPanelUserData() + * @copydoc Dali::ImfManager::SetInputPanelData() */ - void SetInputPanelUserData( const std::string& data ); + void SetInputPanelData( const std::string& data ); /** - * @copydoc Dali::ImfManager::GetInputPanelUserData() + * @copydoc Dali::ImfManager::GetInputPanelData() */ - void GetInputPanelUserData( std::string& data ); + void GetInputPanelData( std::string& data ); /** * @copydoc Dali::ImfManager::GetInputPanelState() diff --git a/adaptors/integration-api/x11/imf-manager-impl.h b/adaptors/integration-api/x11/imf-manager-impl.h index d7d0716..aab3f9f 100644 --- a/adaptors/integration-api/x11/imf-manager-impl.h +++ b/adaptors/integration-api/x11/imf-manager-impl.h @@ -178,14 +178,14 @@ public: void ApplyOptions( const InputMethodOptions& options ); /** - * @copydoc Dali::ImfManager::SetInputPanelUserData() + * @copydoc Dali::ImfManager::SetInputPanelData() */ - void SetInputPanelUserData( const std::string& data ); + void SetInputPanelData( const std::string& data ); /** - * @copydoc Dali::ImfManager::GetInputPanelUserData() + * @copydoc Dali::ImfManager::GetInputPanelData() */ - void GetInputPanelUserData( std::string& data ); + void GetInputPanelData( std::string& data ); /** * @copydoc Dali::ImfManager::GetInputPanelState() diff --git a/adaptors/wayland/input/text/imf/imf-manager-impl-wl.cpp b/adaptors/wayland/input/text/imf/imf-manager-impl-wl.cpp index ab45e74..ec7cdc7 100644 --- a/adaptors/wayland/input/text/imf/imf-manager-impl-wl.cpp +++ b/adaptors/wayland/input/text/imf/imf-manager-impl-wl.cpp @@ -317,11 +317,11 @@ void ImfManager::ApplyOptions(const InputMethodOptions& options) { } -void ImfManager::SetInputPanelUserData( const std::string& data ) +void ImfManager::SetInputPanelData( const std::string& data ) { } -void ImfManager::GetInputPanelUserData( std::string& data ) +void ImfManager::GetInputPanelData( std::string& data ) { } diff --git a/adaptors/wayland/input/text/imf/imf-manager-impl.h b/adaptors/wayland/input/text/imf/imf-manager-impl.h index f93cfe5..d0739a8 100644 --- a/adaptors/wayland/input/text/imf/imf-manager-impl.h +++ b/adaptors/wayland/input/text/imf/imf-manager-impl.h @@ -172,14 +172,14 @@ public: void ApplyOptions( const InputMethodOptions& options ); /** - * @copydoc Dali::ImfManager::SetInputPanelUserData() + * @copydoc Dali::ImfManager::SetInputPanelData() */ - void SetInputPanelUserData( const std::string& data ); + void SetInputPanelData( const std::string& data ); /** - * @copydoc Dali::ImfManager::GetInputPanelUserData() + * @copydoc Dali::ImfManager::GetInputPanelData() */ - void GetInputPanelUserData( std::string& data ); + void GetInputPanelData( std::string& data ); /** * @copydoc Dali::ImfManager::GetInputPanelState() diff --git a/adaptors/x11/imf-manager-impl-x.cpp b/adaptors/x11/imf-manager-impl-x.cpp index c9bef9c..6d9d2a2 100644 --- a/adaptors/x11/imf-manager-impl-x.cpp +++ b/adaptors/x11/imf-manager-impl-x.cpp @@ -590,25 +590,28 @@ void ImfManager::ApplyOptions( const InputMethodOptions& options ) } } -void ImfManager::SetInputPanelUserData( const std::string& data ) +void ImfManager::SetInputPanelData( const std::string& data ) { - DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::SetInputPanelUserData\n" ); + DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::SetInputPanelData\n" ); if( mIMFContext ) { int length = data.length(); - ecore_imf_context_input_panel_imdata_set( mIMFContext, &data, length ); + ecore_imf_context_input_panel_imdata_set( mIMFContext, data.c_str(), length ); } } -void ImfManager::GetInputPanelUserData( std::string& data ) +void ImfManager::GetInputPanelData( std::string& data ) { - DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::GetInputPanelUserData\n" ); + DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::GetInputPanelData\n" ); if( mIMFContext ) { - int* length = NULL; - ecore_imf_context_input_panel_imdata_get( mIMFContext, &data, length ); + int length = 4096; // The max length is 4096 bytes + Dali::Vector< char > buffer; + buffer.Resize( length ); + ecore_imf_context_input_panel_imdata_get( mIMFContext, &buffer[0], &length ); + data = std::string( buffer.Begin(), buffer.End() ); } } -- 2.7.4