<i18n dev> RFR: 8212678 Windows IME related patch
Ichiroh Takiguchi
takiguc at linux.vnet.ibm.com
Sun Nov 18 13:22:23 UTC 2018
Hello.
Could you review the fix ?
Bug: https://bugs.openjdk.java.net/browse/JDK-8212678
Change: http://cr.openjdk.java.net/~aleonard/winime/webrev.00/
Test instruction is in JDK-8212678.
This fix may improve CJK IME operation.
I'd like to obtain a sponsor for this issue.
Thanks,
Ichiroh Takiguchi
IBM Japan, Ltd.
On 2018-06-15 02:26, Phil Race wrote:
> This should go to i18n-dev as well.
>
> -phil.
>
> On 06/14/2018 10:14 AM, Ichiroh Takiguchi wrote:
>> Hello,
>> IBM would like to contribute Windows IME related Java Input Method
>> Framework patch to OpenJDK project.
>>
>> Issue:
>> This patch can fix following issues.
>> A: Cannot display surrogate pair character on Windows floating IME
>> window for passive component
>> B: Control Windows IME status by using InputSubset and UnicodeBlock
>> for CJK countries
>> C: Check preedit string availability for Windows Chinese IME
>>
>> To recreate each issue.
>>
>> Issue A:
>> 1. Run SwingSet2 Java demo program with Japanese IME.
>> 2. Click InternalFrameDemo's "Frame 0".
>> 3. Turn on Japanese IME, then type "2000B" and press F5 key.
>> The character is not displayed properly. [1]
>>
>> Issue B:
>> Test program (ImSubsetsTest.java) is as follow:
>> http://cr.openjdk.java.net/~aleonard/winime/ImSubsetsTest.java
>>
>> 1. Compile and run ImSubsetsTest with CJK IMEs
>> 2. Select language (ja:Japanese, ko:Korean, zh: Chinese).
>> Windows IME (same langugae's one) should be turned on.
>> 3. Click JTextField (active component) or JButton (passive component)
>> (Please check IM status is changed or not)
>> 4. Click different color's JTextField (active component) or JButton
>> (passive component)
>> (Please check IM status is changed or not)
>> 5. Following operations did not work
>> Korean IME : HANJA->LATIN_DIGIT,BASIC_LATIN
>> Chinese IME : FULLWIDTH_DIGITS->LATIN_DIGIT,BASIC_LATIN
>>
>> Issue C:
>> Test program is as follows:
>> ======
>> import javax.swing.*;
>>
>> public class IMFTestA extends JFrame {
>> IMFTestA(int width, int height, int x, int y) {
>> super("JTextArea");
>> add(new JTextArea());
>> setSize(width, height);
>> setLocation(x, y);
>> setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
>> setVisible(true);
>> }
>> public static void main(String[] args) {
>> new IMFTestA(300, 200, 0, 0);
>> new IMFTestA(300, 200, 300, 0);
>> }
>> }
>> ======
>>
>> On Chinese IME (Microsoft Pinyin ABC),
>> 1. Compile and run IMFTestA
>> 2. Click one of JTextArea window, turn ON Chinese IME
>> 3. Click the other window, turn ON Chinese IME
>> 4. Type "nihao", then preedit string is displayed
>> 5. Click the other window, turn OFF Chinese IME
>> 6. Click the other window, preedit string is still displayed but it's
>> not convertable
>>
>> Reason:
>> Issue A, proper font is not specified for passive component
>> Issue B, IME mode setting for CJK Windows IME is not correct
>> Issue C, Chinese Windows IME shares IME status between windows, Java
>> needs to check preedit string is available or not
>>
>> I'd like contribute following 3 files:
>> M src/java.desktop/windows/classes/sun/awt/windows/WInputMethod.java
>> M src/java.desktop/windows/native/libawt/windows/awt_Component.cpp
>> M src/java.desktop/windows/native/libawt/windows/awt_InputMethod.cpp
>> http://cr.openjdk.java.net/~aleonard/winime/webrev.00/
>>
>> I appreciate any feedback please, and how I would go about obtaining a
>> sponsor and contributor?
>>
>> [1] http://unicode.org/cgi-bin/GetUnihanData.pl?codepoint=2000B
>>
>> Thanks,
>> Ichiroh Takiguchi
>> IBM Japan, Ltd.
>>
More information about the i18n-dev
mailing list