<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