From 65cbdc895a889769bb3737af5186930569683e89 Mon Sep 17 00:00:00 2001 From: dmarkov Date: Fri, 17 Feb 2017 15:14:31 +0300 Subject: [PATCH] 8163979: [macosx] Chinese text shows as Latin w/ openVanilla input method Reviewed-by: prr, serb --- .../lwawt/macosx/CInputMethodDescriptor.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/macosx/classes/sun/lwawt/macosx/CInputMethodDescriptor.java b/src/macosx/classes/sun/lwawt/macosx/CInputMethodDescriptor.java index d922d029b..891972ff1 100644 --- a/src/macosx/classes/sun/lwawt/macosx/CInputMethodDescriptor.java +++ b/src/macosx/classes/sun/lwawt/macosx/CInputMethodDescriptor.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -57,15 +57,19 @@ public class CInputMethodDescriptor implements InputMethodDescriptor { } static Object[] getAvailableLocalesInternal() { - List workList = nativeGetAvailableLocales(); - - if (workList != null) { + List workList = nativeGetAvailableLocales(); + Locale currentLocale = CInputMethod.getNativeLocale(); + + if (workList == null || workList.isEmpty()) { + return new Object[] { + currentLocale != null ? currentLocale : Locale.getDefault() + }; + } else { + if (currentLocale != null && !workList.contains(currentLocale)) { + workList.add(currentLocale); + } return workList.toArray(); } - - return new Object[] { - Locale.getDefault() - }; } /** @@ -119,5 +123,5 @@ public class CInputMethodDescriptor implements InputMethodDescriptor { } private static native void nativeInit(); - private static native List nativeGetAvailableLocales(); + private static native List nativeGetAvailableLocales(); } -- GitLab