<AWT Dev> [10] JDK-8148344: Java robot keypress should be able to use extended key code characters as ? ? ?.

Semyon Sadetsky semyon.sadetsky at oracle.com
Wed Aug 23 15:01:29 UTC 2017

On 08/22/2017 09:32 PM, Shashidhara Veerabhadraiah wrote:

> Hi Semyon, As I see the case there are multiple paths to display 
> characters onto a window, either by physical keyboard, soft keyboard 
> or simulating a key event. I think the simulating a key event provides 
> a superset of the keys that can be simulated whereas other methods 
> provides only a subset of this superset.
> This superset is enabled via the platform provided api which was 
> designed to handle or produce the superset of key events. We simulate 
> the key events via the Java Robot. Now this robot does not honor the 
> non-ascii chars because of the very implementation. After this change 
> that barrier is opened up to provide access to other languages as 
> well. One can input decimal values of non-ascii chars thro’ robot and 
> get them displayed on to the window.
It is enabled by some platforms. I am not sure that this is equivalent 
to the normal user interaction to the GUI. Since this is not a true 
emulation and it cannot be uses for testing because in that case the 
event sequence would be different from the real one.

> Thanks and regards,
> Shashi
> *From:*Semyon Sadetsky
> *Sent:* Wednesday, August 23, 2017 12:28 AM
> *To:* Shashidhara Veerabhadraiah 
> <shashidhara.veerabhadraiah at oracle.com>; awt-dev at openjdk.java.net
> *Subject:* Re: <AWT Dev> [10] JDK-8148344: Java robot keypress should 
> be able to use extended key code characters as ? ? ?.
> Because press/release keycodes are not the same as characters. 
> Character is produced from keycode or sequence of keycodes according 
> to the selected kayboard layout.
> --Semyon
> On 08/22/2017 11:30 AM, Shashidhara Veerabhadraiah wrote:
>     Hi, Why not if the platform offers a way to simulate Unicode
>     keyboard events? Here the platform api offers to accept decimal
>     values or code values as input though a real keyboard may not be
>     able to generate the same and converts it into a displayable
>     Unicode char.
>     Thanks and regards,
>     shashi
>     *From:*Semyon Sadetsky
>     *Sent:* Tuesday, August 22, 2017 10:03 PM
>     *To:* Shashidhara Veerabhadraiah
>     <shashidhara.veerabhadraiah at oracle.com>
>     <mailto:shashidhara.veerabhadraiah at oracle.com>;
>     awt-dev at openjdk.java.net <mailto:awt-dev at openjdk.java.net>
>     *Subject:* Re: <AWT Dev> [10] JDK-8148344: Java robot keypress
>     should be able to use extended key code characters as ? ? ?.
>     Hi,
>     Are you sure that keyPress/keyRelease should emulate UTF8 symbols?
>     Physical keyboard cannot produces so many keycodes with a single
>     press/release.
>     --Semyon
>     On 08/22/2017 01:57 AM, Shashidhara Veerabhadraiah wrote:
>         Hi All, Please review fix for the /_enhancement_/ wherein the
>         robot key press of non-ascii were interpreted as question marks.
>         Issue: The robot key press events was handling only the ascii
>         inputs and ignored the other Unicode inputs. Either it was
>         throwing illegal argument exception in windows or does nothing
>         on the mac for those Unicode inputs.
>         Solution and fix: The platform specific api’s was unable
>         handle the non-ascii inputs. I have modified the api’s to
>         accept the non-ascii inputs and correspondingly send the
>         message to the window to print the non-ascii characters as
>         well. Below is the picture of how the non-ascii inputs are
>         considered and printed onto the window.
>         The solution spans across windows and mac platform and still
>         in search of a solution for the Linux platform. The solution
>         implements key scanning only upon existing valid ascii key was
>         /_not_/ found and assumes it as Unicode key and sends the
>         event to event queue to be processed as Unicode keys.
>         Different formats are being used by different platform
>         implementation of Unicode. For ex., per the below Unicode
>         list, in the case of windows and mac, the key input can take
>         decimal values whereas on Linux it can only take the Code values.
>         On Linux, I was able to get the KeySym of Unicode keys but was
>         unable to fake the key event as there was no mechanism
>         available for the same(which sends the key event to window).
>         Please let me know if there is any such mechanism available to
>         simulate Unicode key events on Linux platform. Hence I think
>         to raise a bug for the Linux platform and close this
>         JDK-8148344 bug.
>         Enhancement id: https://bugs.openjdk.java.net/browse/JDK-8148344
>         Webrev:
>         http://cr.openjdk.java.net/~sveerabhadra/8148344/webrev.00/
>         <http://cr.openjdk.java.net/%7Esveerabhadra/8148344/webrev.00/>
>         Thanks and regards,
>         Shashi

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20170823/ee3c539b/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 4356 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20170823/ee3c539b/image001-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.jpg
Type: image/jpeg
Size: 81009 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/awt-dev/attachments/20170823/ee3c539b/image003-0001.jpg>

More information about the awt-dev mailing list