United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-4978105 : Applets in Plugin on Windows can't see dead keys as KeyEvents.

Details
Type:
Bug
Submit Date:
2004-01-14
Status:
Resolved
Updated Date:
2004-03-30
Project Name:
JDK
Resolved Date:
2004-03-08
Component:
client-libs
OS:
windows_xp
Sub-Component:
java.awt
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
1.4.2_03
Fixed Versions:
1.4.2_05 (05)

Related Reports
Backport:

Sub Tasks

Description
An applet which creates a KeyListener wants to look at the low-level KeyPress events which are happening.  

On Windows, in the Java PlugIn, while a TextField can display characters entered using a dead-key, the KeyListener sees no event for the dead key itself.

Using the built-in JVM (ie. not Sun's), the dead key does generate it's own event.  The dead key also generates an event which the KeyListener sees if the applet is run in AppletViewer rather than in the Java Plugin. 

We expect to see these events as we believe we are using the low-level interface to monitor actual keys pressed, not characters typed.

On Solaris, the compose key does generate a KeyEvent.

To reproduce:

An applet for monitoring this behaviour is attached.

If using an English PC with an English keyboard, use Windows' control panel to add a Spanish keyboard in Windows.  This means the key after jkl; and before # and <enter> becomes the DEAD ACUTE key, and the key to the right of u i o p becomes the DEAD GRAVE.

Load the attached web page (in the tar file) into a browser, and give focus to the first text entry field.  Press either of these keys and note that the test applet does not recognise it.


                                    

Comments
PUBLIC COMMENTS

An applet which creates a KeyListener wants to look at the low-level KeyPress events which are happening.  

On Windows, in the Java PlugIn, while a TextField can display characters entered using a dead-key, the KeyListener sees no event for the dead key itself.
                                     
2004-06-10
EVALUATION



Name: ssR10077			Date: 02/19/2004


All the code workarounding the so called TranslateMessage bug with dead keys can be 
safely removed.

The true problem is we always pass scancode of the pressed button to ::ToAsciiEx and 
confuse Win32 to think additional Dead Key pressed. If we pass the correct scan code 
the things work right without additional thinkering.

======================================================================
                                     
2004-06-11
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
1.4.2_05
generic
tiger-beta2

FIXED IN:
1.4.2_05
tiger-beta2

INTEGRATED IN:
1.4.2_05
tiger-b42
tiger-beta2


                                     
2004-06-14



Hardware and Software, Engineered to Work Together