From: Chulheon Date: Mon, 3 Jun 2013 12:37:05 +0000 (+0900) Subject: fixed bug(about SetInputPanelLanguage) X-Git-Tag: accepted/tizen/20130924.144426~1^2~680^2~30^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=fa7ce898214c4ce34bf269d1e752547d2a52a1c9;p=platform%2Fframework%2Fnative%2Fuifw.git fixed bug(about SetInputPanelLanguage) Change-Id: Id656dba17f0997f36c3ae1e1b45ab902ffafdd6d --- diff --git a/src/ui/FUi_BidiUtils.cpp b/src/ui/FUi_BidiUtils.cpp index 3df0313..a48a33f 100644 --- a/src/ui/FUi_BidiUtils.cpp +++ b/src/ui/FUi_BidiUtils.cpp @@ -148,8 +148,8 @@ _BidiUtils::GetLocaleLanguageN(void) return pLocaleLanguage; } -ByteBuffer* -_BidiUtils::ConvertLanguageCountryCode2Utf8N(LanguageCode languageCode) +String +_BidiUtils::ConvertLanguageCountryCodeString(LanguageCode languageCode) { static const char* defaultLauguageCountryCodeArray[LANGUAGE_MAX] = { @@ -659,7 +659,6 @@ static const char* defaultLauguageCountryCodeArray[LANGUAGE_MAX] = String languageCodeString(L"LANG:"); String countryCodeString; - ByteBuffer* pCountry = null; languageCodeString.Append(Locale::LanguageCodeToTwoLetterLanguageCodeString(languageCode)); const char* pCountryCode = (languageCode < LANGUAGE_MAX) ? defaultLauguageCountryCodeArray[languageCode] : ""; @@ -667,7 +666,7 @@ static const char* defaultLauguageCountryCodeArray[LANGUAGE_MAX] = int len = strlen(pCountryCode); if (len == 0) { - return null; + return String(L""); } if (len == 2) { @@ -681,7 +680,7 @@ static const char* defaultLauguageCountryCodeArray[LANGUAGE_MAX] = if (!pLocaleLanguage) { - return null; + return String(L""); } const String displayCountry = pLocaleLanguage->GetCountryCodeString(); @@ -703,9 +702,7 @@ static const char* defaultLauguageCountryCodeArray[LANGUAGE_MAX] = languageCodeString.Append(countryCodeString); } - pCountry = StringUtil::StringToUtf8N(languageCodeString); - - return pCountry; + return languageCodeString; } }} // Tizen::Ui diff --git a/src/ui/FUi_InputConnectionImpl.cpp b/src/ui/FUi_InputConnectionImpl.cpp index bb2c49f..227faec 100644 --- a/src/ui/FUi_InputConnectionImpl.cpp +++ b/src/ui/FUi_InputConnectionImpl.cpp @@ -1052,17 +1052,28 @@ _InputConnectionImpl::SetInputPanelLanguage(LanguageCode languageCode) SysAssertf(__pContext != null, "Not yet constructed. Construct() should be called before use."); - ByteBuffer* pBuffer = _BidiUtils::ConvertLanguageCountryCode2Utf8N(languageCode); - if (!pBuffer) + String language(L""); + language = _BidiUtils::ConvertLanguageCountryCodeString(languageCode); + if (language == String(L"")) { const char* pLanguage = "LANG:en_US"; ecore_imf_context_input_panel_imdata_set(__pContext, pLanguage, LANGUAGE_IM_DATA_LENGTH); return r; } - ecore_imf_context_input_panel_imdata_set(__pContext, pBuffer, LANGUAGE_IM_DATA_LENGTH); + else + { + char* pLanguage = null; + int len = wcstombs(0, static_cast(language.GetPointer()), 0); + pLanguage = (char*)malloc(len+1); + SysTryReturn(NID_UI, pLanguage, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] pLanguage is null."); + + len = wcstombs(pLanguage, static_cast(language.GetPointer()), len); + pLanguage[len] = null; - delete pBuffer; + ecore_imf_context_input_panel_imdata_set(__pContext, pLanguage, LANGUAGE_IM_DATA_LENGTH); + free(pLanguage); + } return r; } diff --git a/src/ui/inc/FUi_BidiUtils.h b/src/ui/inc/FUi_BidiUtils.h index 8287dd1..a306b7d 100644 --- a/src/ui/inc/FUi_BidiUtils.h +++ b/src/ui/inc/FUi_BidiUtils.h @@ -39,7 +39,7 @@ public: static bool IsBidiLanguage(Tizen::Locales::LanguageCode languageCode); static Tizen::Locales::LanguageCode GetDisplayLanguage(void); static Tizen::Locales::Locale* GetLocaleLanguageN(void); - static Tizen::Base::ByteBuffer* ConvertLanguageCountryCode2Utf8N(Tizen::Locales::LanguageCode languageCode); + static Tizen::Base::String ConvertLanguageCountryCodeString(Tizen::Locales::LanguageCode languageCode); private: _BidiUtils(void);