X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FSurface.java;h=3b9bbf00c1cd0b91dfe3a909cd15134b5ad0646c;hb=b8b00e86f5605467e741077e4f0c4e59544106a4;hp=7cecd6270902432548c0c9980ab657eb4890c1c9;hpb=0adc0a8f84391f191e793f1903bf354408bdd416;p=org.ibex.core.git diff --git a/src/org/xwt/Surface.java b/src/org/xwt/Surface.java index 7cecd62..3b9bbf0 100644 --- a/src/org/xwt/Surface.java +++ b/src/org/xwt/Surface.java @@ -201,15 +201,15 @@ public abstract class Surface { protected final void KeyPressed(String key) { if (key == null) return; - if (key.equals("alt")) alt = true; + if (key.toLowerCase().endsWith("shift")) shift = true; + else if (shift) key = key.toUpperCase(); + + if (key.toLowerCase().equals("alt")) alt = true; else if (alt) key = "A-" + key; - if (key.endsWith("control")) control = true; + if (key.toLowerCase().endsWith("control")) control = true; else if (control) key = "C-" + key; - if (key.endsWith("shift")) shift = true; - else if (shift) key = key.toUpperCase(); - final String fkey = key; MessageQueue.add(new KMessage(key)); } @@ -233,9 +233,9 @@ public abstract class Surface { /** sends a KeyReleased message; subclasses should not add the C- or A- prefixes, nor should they capitalize alphabet characters */ protected final void KeyReleased(final String key) { if (key == null) return; - if (key.equals("alt")) alt = false; - else if (key.equals("control")) control = false; - else if (key.equals("shift")) shift = false; + if (key.toLowerCase().equals("alt")) alt = false; + else if (key.toLowerCase().equals("control")) control = false; + else if (key.toLowerCase().equals("shift")) shift = false; MessageQueue.add(new Message() { public void perform() { outer: for(int i=0; i