2002/07/19 05:27:11
[org.ibex.core.git] / src / org / xwt / plat / POSIX.cc
index 52d86d9..720ed6c 100644 (file)
@@ -578,7 +578,6 @@ void org::xwt::plat::POSIX$X11Surface::dispatchEvent(gnu::gcj::RawData* ev) {
             case XK_Shift_R: s = "shift"; break;
             case XK_Control_L: s = "control"; break;
             case XK_Control_R: s = "control"; break;
-            case XK_Caps_Lock: s = "caps_lock"; break;
             case XK_Meta_L: s = "alt"; break;
             case XK_Meta_R: s = "alt"; break;
             case XK_Alt_L: s = "alt"; break;
@@ -587,8 +586,9 @@ void org::xwt::plat::POSIX$X11Surface::dispatchEvent(gnu::gcj::RawData* ev) {
             }
         }
         
-        if (e->type == KeyPress) KeyPressed(JvNewStringLatin1(s));
-        if (e->type == KeyRelease) KeyReleased(JvNewStringLatin1(s));
+        jstring s2 = JvNewStringLatin1(s);
+        if (e->type == KeyPress) KeyPressed((xbe->state & LockMask) ? s2->toUpperCase() : s2);
+        if (e->type == KeyRelease) KeyReleased(s2);
         
     } else if (e->type == ButtonPress) {
         XButtonEvent* xbe = (XButtonEvent*)(e);