<Swing Dev> [12] Review request for 8187364: Unable to enter zero width non-joiner (ZWNJ) symbol in Swing text component

Dmitry Markov dmitry.markov at oracle.com
Mon Nov 12 18:01:29 UTC 2018


Hi Anton,

The fix looks good.

Thanks,
Dmitry

> On 9 Nov 2018, at 16:09, Anton Litvinov <anton.litvinov at oracle.com> wrote:
> 
> Hello reviewers,
> 
> This is a kind reminder. Could anybody please look at this review request?
> 
> Thank you,
> Anton
> 
> On 02/11/2018 22:32, Anton Litvinov wrote:
>> Hello,
>> 
>> Could you please review the following fix for the bug.
>> 
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8187364
>> Webrev: http://cr.openjdk.java.net/~alitvinov/8187364/jdk12/webrev.00
>> 
>> The bug consists in the fact that on MS Windows OS with the enabled Persian keyboard layout zero width non-joiner (ZWNJ) character, whose Unicode code is "\u200C", cannot be entered in Swing text components by means of "Ctrl+Shift+2" key combination. The bug does not affect AWT text components.
>> 
>> CAUSE OF THE BUG:
>> In the method "javax.swing.text.DefaultEditorKit.DefaultKeyTypedAction.actionPerformed(ActionEvent)" ZWNJ character "\u200C" is not inserted to the document of "javax.swing.JTextComponent" through the call "target.replaceSelection(content);", because a previous call to "sun.awt.SunToolkit.isPrintableCharacterModifiersMask(int)" method returns "false" for the case, when key modifiers integer variable equals 3 ("Ctrl+Shift" keys are pressed).
>> 
>> THE FIX:
>> The fix changes the method "DefaultEditorKit.DefaultKeyTypedAction.actionPerformed(ActionEvent)" to allow entering 2 listed below Unicode characters in the text component's document, when these characters are treated as non-printable.
>> - "\u200C" - ZWNJ;
>> - "\u200D" - zero width joiner (ZWJ), which is entered by "Ctrl+Shift+1" key combination with Persian keyboard layout.
>> 
>> Thank you,
>> Anton
> 



More information about the swing-dev mailing list