<AWT Dev> [8] Review request for 7156194 [macosx] Can't type non-ASCII characters into applets

Dmitry Cherepanov dmitry.cherepanov at oracle.com
Tue Apr 10 03:18:49 PDT 2012

Hi Anthony,

Anthony Petrov wrote:
> Hi Dmitry,
> On 4/5/2012 11:47 AM, Dmitry Cherepanov wrote:
>>> src/macosx/classes/sun/lwawt/macosx/CPlatformResponder.java
>>>>  188             while (index < length) {
>>>>  189                 c = text.charAt(index);
>>>>  190                 peer.dispatchKeyEvent(KeyEvent.KEY_TYPED,
>>>>  191                                       System.currentTimeMillis(),
>>>>  192                                       0, 
>>>> KeyEvent.VK_UNDEFINED, c,
>>>>  193                                       
>>>>  194                 index++;
>>>>  195             }
>>> Are we sure we want to dispatch each character for the 
>>> handleInputEvent(String) event with its own timestamp? Does a 
>>> browser combine several unrelated key strokes into a single 
>>> InputEvent, or are all the characters actually represent one 
>>> integral input event? Put another way, should user code be able to 
>>> see that a bunch of TYPED events actually belongs to one native 
>>> input event?
>> I'm not sure that I understood your question correctly. When a 
>> browser starts a complex text composition, the Plug-in doesn't 
>> receive KeyDown/KeyUp events but it receives TextInput event 
>> containing the composed string and this TextInput event is sent when 
>> the composition is finished. If this doesn't answer your question, 
>> could you please give an example?
> At line 191 in the above quote you're assigning a new timestamp to 
> every Java TYPED event, while all the characters sent via the TYPED 
> events actually belong to just one browser's InputEvent. I'm wondering 
> whether all these TYPED events should share the same timestamp (e.g. 
> acquired before entering the while loop) or not. Could you 
> investigate/clarify this please?

Both ways seems to be fine to me because the plug-in doesn't receive any 
TextInput events during 'in-progress' text composition and receives the 
TextInput event when the text composition is done. If you think that 
there should be some kind of consistency in it, I guess that its okay to 
have these TYPED events with the same timestamp but I don't see any 
reason why it should matter.


More information about the awt-dev mailing list