X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=adaptors%2Fecore%2Fwayland%2Fimf-manager-impl-ecore-wl.cpp;h=69e5e4111a1c985d04b5c532251e25b8a4c21f3e;hb=refs%2Fchanges%2F69%2F154769%2F1;hp=942d96c6b40c37a220683dd539d584a009ba4062;hpb=1c063fa5e2ad997456521bca7c0acf7345cdbad7;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp b/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp old mode 100755 new mode 100644 index 942d96c..69e5e41 --- a/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp +++ b/adaptors/ecore/wayland/imf-manager-impl-ecore-wl.cpp @@ -258,18 +258,6 @@ TypeRegistration IMF_MANAGER_TYPE( typeid(Dali::ImfManager), typeid(Dali::BaseHa } // unnamed namespace -void ImfManager::Finalize() -{ - DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::Finalize\n" ); - if ( mInited ) - { - DisconnectCallbacks(); - DeleteContext(); - ecore_imf_shutdown(); - mInited = false; - } -} - bool ImfManager::IsAvailable() { bool available( false ); @@ -286,7 +274,6 @@ bool ImfManager::IsAvailable() Dali::ImfManager ImfManager::Get() { Dali::ImfManager manager; - ImfManager *imfManager = NULL; Dali::SingletonService service( SingletonService::Get() ); if ( service ) @@ -296,12 +283,12 @@ Dali::ImfManager ImfManager::Get() if( handle ) { // If so, downcast the handle - imfManager = dynamic_cast< ImfManager* >( handle.GetObjectPtr() ); - manager = Dali::ImfManager( imfManager ); + manager = Dali::ImfManager( dynamic_cast< ImfManager* >( handle.GetObjectPtr() ) ); } else if ( Adaptor::IsAvailable() ) { // Create instance and register singleton only if the adaptor is available + Adaptor& adaptorImpl( Adaptor::GetImplementation( Adaptor::Get() ) ); Any nativeWindow = adaptorImpl.GetNativeWindowHandle(); @@ -313,8 +300,8 @@ Dali::ImfManager ImfManager::Get() // If we fail to get Ecore_Wl_Window, we can't use the ImfManager correctly. // Thus you have to call "ecore_imf_context_client_window_set" somewhere. // In EvasPlugIn, this function is called in EvasPlugin::ConnectEcoreEvent(). - imfManager = new ImfManager( ecoreWwin ); - manager = Dali::ImfManager( imfManager ); + + manager = Dali::ImfManager( new ImfManager( ecoreWwin ) ); service.Register( typeid( manager ), manager ); } else @@ -324,37 +311,35 @@ Dali::ImfManager ImfManager::Get() } } - if ( ( imfManager != NULL ) && !imfManager->mInited ) - { - ecore_imf_init(); - imfManager->CreateContext( imfManager->mEcoreWlwin ); - - imfManager->ConnectCallbacks(); - imfManager->mInited = true; - } - return manager; } ImfManager::ImfManager( Ecore_Wl_Window *ecoreWlwin ) : mIMFContext(), - mEcoreWlwin( ecoreWlwin ), mIMFCursorPosition( 0 ), mSurroundingText(), - mInited( false ), mRestoreAfterFocusLost( false ), mIdleCallbackConnected( false ) { + ecore_imf_init(); + CreateContext( ecoreWlwin ); + + ConnectCallbacks(); } ImfManager::~ImfManager() { - Finalize(); + DisconnectCallbacks(); + + DeleteContext(); + ecore_imf_shutdown(); } + void ImfManager::CreateContext( Ecore_Wl_Window *ecoreWlwin ) { DALI_LOG_INFO( gLogFilter, Debug::General, "ImfManager::CreateContext\n" ); + const char *contextId = ecore_imf_context_default_id_get(); if( contextId ) {