A patch for src/solaris/classes/sun/awt/X11/XKeysym.java

Kurt Miller kurt at intricatesoftware.com
Tue Jan 20 19:49:19 PST 2009


Hi Max,

I too am not an X11/awt expert. I looked over the patch and some
of the related code. 16 == XConstants.Mod2Mask, but looking at

src/solaris/classes/sun/awt/X11/XToolkit.java

makes me believe hard-coding it here is not correct. On my system
mod2 is NumLock but on OS X it is Command (use xmodmap -p to check).
To further complicate things XK_Meta_L is Alt normally but on OS X
it is the Command key.  I'm not sure of the correct solution to use
to resolve the issues. One work-around can be found here though:

http://extrabright.com/blog/2007/02/03/better-keyboard-shortcut-for-mac-x11-apps/

Regards,
-Kurt

Max (Weijun) Wang wrote:
> Hi, BSD Hackers
> 
> I'm using the bsd-port openjdk to run NetBeans on my MacBook. There's  
> a problem that when you press Command+X in the editor, besides the  
> keyboard shortcut being executed, the letter "X" itself goes into the  
> edited file.
> 
> I've coined the following patch and at least NetBeans works fine now.
> 
> diff --git a/src/solaris/classes/sun/awt/X11/XKeysym.java b/src/ 
> solaris/classes/sun/awt/X11/XKeysym.java
> --- a/src/solaris/classes/sun/awt/X11/XKeysym.java
> +++ b/src/solaris/classes/sun/awt/X11/XKeysym.java
> @@ -70,7 +70,7 @@
>           /* First check for Latin-1 characters (1:1 mapping) */
>           if ((ks >= 0x0020 && ks <= 0x007e) ||
>               (ks >= 0x00a0 && ks <= 0x00ff)) {
> -            if( (state & XConstants.ControlMask) != 0 ) {
> +            if( (state & XConstants.ControlMask) != 0 || (state &  
> 16) != 0 ) {
>                   if ((ks >= 'A' && ks <= ']') || (ks == '_') ||
>                       (ks >= 'a' && ks <='z')) {
>                       ks &= 0x1F;
> 
> I'm neither a BSD nor an X11/awt expert, so I'm completely not sure if  
> this really fixes the problem or has broken other things.
> 
> Thanks
> Max
> 
> 




More information about the bsd-port-dev mailing list