[linux] fix bug 73192

This commit is contained in:
SimplestStudio
2025-04-25 14:36:31 +03:00
parent 39c89fb21d
commit 949ab72f9b
2 changed files with 7 additions and 4 deletions

View File

@ -939,7 +939,9 @@ int CAscApplicationManager::GetPlatformKeyboardLayout()
#if defined(_LINUX) && !defined(_MAC)
KeyboardLayout kl;
return kl.GetKeyboardLayout();
uint16_t layout = kl.GetKeyboardLayout();
if (layout != 0)
return layout;
#endif
return -1;

View File

@ -45,12 +45,13 @@ static uint16_t layoutNameToLangId(const std::string &layoutName)
}
int32_t count;
icu::Locale loc("en");
icu::UnicodeString uname;
const icu::Locale *availableLocales = icu::Locale::getAvailableLocales(count);
for (int32_t i = 0; i < count; ++i) {
std::string name;
if (language.empty()) {
availableLocales[i].getDisplayLanguage(uname);
availableLocales[i].getDisplayLanguage(loc, uname);
uname.toUTF8String(name);
if (name.find(languageDisplayName) != std::string::npos)
language = availableLocales[i].getLanguage();
@ -58,7 +59,7 @@ static uint16_t layoutNameToLangId(const std::string &layoutName)
}
if (script.empty()) {
availableLocales[i].getDisplayScript(uname);
availableLocales[i].getDisplayScript(loc, uname);
uname.toUTF8String(name);
if (!name.empty()) {
for (auto it = parts.cbegin(); it != parts.cend(); it++) {
@ -73,7 +74,7 @@ static uint16_t layoutNameToLangId(const std::string &layoutName)
}
if (region.empty()) {
availableLocales[i].getDisplayCountry(uname);
availableLocales[i].getDisplayCountry(loc, uname);
uname.toUTF8String(name);
if (!name.empty()) {
for (auto it = parts.cbegin(); it != parts.cend(); it++) {