jdk/src/solaris/classes/sun/awt/X11/XKeysym.java
changeset 1187 6067b9e2eac6
parent 450 be95c1c0efcf
child 1966 12a51fb0db0d
--- a/jdk/src/solaris/classes/sun/awt/X11/XKeysym.java	Fri Jul 25 15:19:11 2008 +0400
+++ b/jdk/src/solaris/classes/sun/awt/X11/XKeysym.java	Tue Aug 05 15:26:08 2008 +0400
@@ -101,10 +101,15 @@
         // Otherwise, it is [1].
         int ndx = XToolkit.isXsunServer() &&
                   ! XToolkit.isXKBenabled() ? 2 : 1;
+        // Even if XKB is enabled, we have another problem: some symbol tables (e.g. cz) force
+        // a regular comma instead of KP_comma for a decimal separator. Result is,
+        // bugs like 6454041. So, we will try for keypadness  a keysym with ndx==0 as well.
         XToolkit.awtLock();
         try {
-            return XlibWrapper.IsKeypadKey(
-                XlibWrapper.XKeycodeToKeysym(ev.get_display(), ev.get_keycode(), ndx ) );
+            return (XlibWrapper.IsKeypadKey(
+                XlibWrapper.XKeycodeToKeysym(ev.get_display(), ev.get_keycode(), ndx ) ) ||
+                   XlibWrapper.IsKeypadKey(
+                XlibWrapper.XKeycodeToKeysym(ev.get_display(), ev.get_keycode(), 0 ) ));
         } finally {
             XToolkit.awtUnlock();
         }