You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by te...@apache.org on 2007/04/20 23:08:59 UTC
svn commit: r530921 - in /harmony/enhanced/classlib/trunk/modules/awt/src:
main/java/common/org/apache/harmony/awt/ButtonStateController.java
test/api/java/common/java/awt/ButtonRTest.java
Author: tellison
Date: Fri Apr 20 14:08:58 2007
New Revision: 530921
URL: http://svn.apache.org/viewvc?view=rev&rev=530921
Log:
Apply patch HARMONY-3701 ([classlib][awt] java.awt.ButtonRTest fails on build machine)
Modified:
harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/ButtonStateController.java
harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ButtonRTest.java
Modified: harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/ButtonStateController.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/ButtonStateController.java?view=diff&rev=530921&r1=530920&r2=530921
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/ButtonStateController.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/main/java/common/org/apache/harmony/awt/ButtonStateController.java Fri Apr 20 14:08:58 2007
@@ -70,13 +70,12 @@
public void mousePressed(MouseEvent me) {
if (mousePressed || keyPressed ||
- (me.getButton() != MouseEvent.BUTTON1) ||
- (activeComponent != null)) {
+ (me.getButton() != MouseEvent.BUTTON1) || !lock()) {
return;
}
mousePressed = true;
- activeComponent = component;
+
if (mouseInside) {
component.repaint();
}
@@ -87,14 +86,13 @@
}
public void mouseReleased(MouseEvent me) {
- if (!mousePressed || (me.getButton() != MouseEvent.BUTTON1) ||
- (activeComponent != component)) {
+ if (!mousePressed || (me.getButton() != MouseEvent.BUTTON1) || !unlock()) {
return;
}
mousePressed = false;
component.repaint();
- activeComponent = null;
+
if (mouseInside) {
when = me.getWhen();
mod = me.getModifiers();
@@ -107,13 +105,11 @@
assert focused == true : Messages.getString("awt.54"); //$NON-NLS-1$
if (mousePressed || keyPressed ||
- (ke.getKeyCode() != KeyEvent.VK_SPACE) ||
- (activeComponent != null)) {
+ (ke.getKeyCode() != KeyEvent.VK_SPACE) || !lock()) {
return;
}
keyPressed = true;
- activeComponent = component;
component.repaint();
}
@@ -121,13 +117,11 @@
// awt.54=Key event for unfocused component
assert focused == true : Messages.getString("awt.54"); //$NON-NLS-1$
- if (!keyPressed || (ke.getKeyCode() != KeyEvent.VK_SPACE) ||
- (activeComponent != component)) {
+ if (!keyPressed || (ke.getKeyCode() != KeyEvent.VK_SPACE) || !unlock()) {
return;
}
keyPressed = false;
- activeComponent = null;
component.repaint();
when = ke.getWhen();
mod = ke.getModifiers();
@@ -158,6 +152,7 @@
// awt.58=Double focus lost event for component
assert focused == true : Messages.getString("awt.58"); //$NON-NLS-1$
+ unlock();
focused = false;
keyPressed = false;
mousePressed = false;
@@ -185,5 +180,34 @@
}
protected abstract void fireEvent();
+
+ /**
+ * Acquires the lock for this button. If the lock is acquired no other
+ * buttons could be pressed until the lock is released.
+ *
+ * @return true if the lock has been successfully acquired, otherwise
+ * returns false.
+ */
+ private boolean lock() {
+ if (activeComponent != null) {
+ return false;
+ }
+
+ activeComponent = component;
+ return true;
+ }
+
+ /**
+ * Releases the lock.
+ *
+ * @return true if the lock has been released, otherwise returns false.
+ */
+ private boolean unlock() {
+ if (activeComponent != component) {
+ return false;
+ }
+ activeComponent = null;
+ return true;
+ }
}
Modified: harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ButtonRTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ButtonRTest.java?view=diff&rev=530921&r1=530920&r2=530921
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ButtonRTest.java (original)
+++ harmony/enhanced/classlib/trunk/modules/awt/src/test/api/java/common/java/awt/ButtonRTest.java Fri Apr 20 14:08:58 2007
@@ -81,6 +81,13 @@
f.dispose();
}
}
+
+ // Regression test for HARMONY-3701
+ public void testHarmony3701() throws Exception {
+ setName("testHarmony3701"); //$NON-NLS-1$
+ testHarmony2305();
+ testHarmony2305();
+ }
static class AL implements ActionListener {
ActionEvent e;