Hi, Dmitry.
Probably we can reuse Java_sun_lwawt_macosx_CInputMethod_getNativeLocale?
And change the java code in the CInputMethodDescriptor to something like:
static Object[] getAvailableLocalesInternal() {
List<?> workList = nativeGetAvailableLocales();
Locale nativeLocale = CIM.getNativeLocale()
if (workList == null && nativeLocale == null)) {
return new Object[] {
Locale.getDefault()
};
}
if(workList != null && !workList.isEmpty() && nativeLocale == null) {
return workList.toArray();
}
if((workList == null || workList.isEmpty()) && nativeLocale != null) {
return new Object[] {
nativeLocale;
};
}
if (!workList.contains(nativeLocale)){
workList.add(nativeLocale);
}
return workList.toArray();
}
>
> I am sorry, I sent the incorrect version of the fix, (i.e.
> http://cr.openjdk.java.net/~dmarkov/8163979/webrev.00/). It releases
> currenLocale two times.
> The correct version is located at
> http://cr.openjdk.java.net/~dmarkov/8163979/webrev.01/
> Could you review the updated fix, please?
>
> Thanks,
> Dmitry
>> On 13 Feb 2017, at 16:58, Dmitry Markov <[email protected]> wrote:
>>
>> Hello,
>>
>> Could you review a fix for jdk9, please?
>>
>> bug: https://bugs.openjdk.java.net/browse/JDK-8163979
>> webrev: http://cr.openjdk.java.net/~dmarkov/8163979/webrev.00/
>>
>> Problem description:
>> If the current keyboard layout is set to non-default value, (e.g. ABC, ABC
>> Extended, etc) during Java launch, the input method functionality is not
>> initialised correctly and may not work for some input methods, (e.g.
>> OpenVanilla input method). The initialisation problems are caused by
>> nativeGetAvailableLocales() function from CInputMethod.m. The function tries
>> to obtain the list of available input method locales using platform API. If
>> the retrieval is failed for some reason, nativeGetAvailableLocales() returns
>> empty list or null.
>>
>> Fix:
>> The function nativeGetAvailableLocales() should return the list contained
>> the current input method locale, if it cannot retrieve the list of available
>> locales from the platform.
>>
>>
>> Thanks,
>> Dmitry
>