From: megacz Date: Fri, 30 Jan 2004 06:49:12 +0000 (+0000) Subject: 2002/07/19 04:48:12 X-Git-Tag: RC3~1618 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=b8b00e86f5605467e741077e4f0c4e59544106a4;hp=0adc0a8f84391f191e793f1903bf354408bdd416;p=org.ibex.core.git 2002/07/19 04:48:12 darcs-hash:20040130064912-2ba56-d6578751e152f2c22e6ffe6162a333244e2b7285.gz --- diff --git a/CHANGES b/CHANGES index 977e686..d29928b 100644 --- a/CHANGES +++ b/CHANGES @@ -282,3 +282,7 @@ 18-Jul megacz Platform.java: never create or permit windows smaller than the scar. + +18-Jul megacz Surface.java: improved shift modifier handling, + prohibited windows smaller than scar. + 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