8213123: javax/swing/JButton/4368790/bug4368790.java fails on mac
Reviewed-by: serb, jdv
This commit is contained in:
parent
059329b346
commit
c18080fef7
@ -522,6 +522,7 @@ public class AquaButtonUI extends BasicButtonUI implements Sizeable {
|
||||
// If focusLost arrives while the button has been left-clicked this would disarm the button,
|
||||
// causing actionPerformed not to fire on mouse release!
|
||||
//b.getModel().setArmed(false);
|
||||
b.getModel().setPressed(false);
|
||||
((Component)e.getSource()).repaint();
|
||||
}
|
||||
|
||||
|
@ -849,7 +849,6 @@ javax/swing/text/Utilities/8142966/SwingFontMetricsTest.java 8199529 windows-all
|
||||
javax/swing/JPopupMenu/8075063/ContextMenuScrollTest.java 202880 linux-all
|
||||
javax/swing/dnd/8139050/NativeErrorsInTableDnD.java 8202765 macosx-all,linux-all
|
||||
javax/swing/Popup/TaskbarPositionTest.java 8065097 macosx-all,linux-all
|
||||
javax/swing/JButton/4368790/bug4368790.java 8213123 macosx-all
|
||||
javax/swing/JEditorPane/6917744/bug6917744.java 8213124 macosx-all
|
||||
javax/swing/JTable/6263446/bug6263446.java 8169959 macosx-all
|
||||
javax/swing/JTree/6263446/bug6263446.java 8213125 macosx-all
|
||||
|
@ -24,15 +24,19 @@
|
||||
/*
|
||||
* @test
|
||||
* @key headful
|
||||
* @bug 4368790
|
||||
* @summary JButton stays pressed when focus stolen
|
||||
* @author Alexander Potochkin
|
||||
* @run main bug4368790
|
||||
* @bug 4368790 8213123
|
||||
* @summary JButton stays pressed when focus stolen
|
||||
* @run main bug4368790
|
||||
*/
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.awt.Robot;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.FlowLayout;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.UIManager;
|
||||
import javax.swing.UnsupportedLookAndFeelException;
|
||||
|
||||
public class bug4368790 {
|
||||
private static JButton b1;
|
||||
@ -53,26 +57,43 @@ public class bug4368790 {
|
||||
b1.requestFocus();
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
private static void setLookAndFeel(UIManager.LookAndFeelInfo laf) {
|
||||
try {
|
||||
Robot robot = new Robot();
|
||||
robot.setAutoDelay(50);
|
||||
SwingUtilities.invokeAndWait(new Runnable() {
|
||||
public void run() {
|
||||
bug4368790.createGui();
|
||||
UIManager.setLookAndFeel(laf.getClassName());
|
||||
} catch (UnsupportedLookAndFeelException ignored) {
|
||||
System.out.println("Unsupported L&F: " + laf.getClassName());
|
||||
} catch (ClassNotFoundException | InstantiationException
|
||||
| IllegalAccessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
Robot robot = new Robot();
|
||||
for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
|
||||
System.out.println("Testing L&F: " + laf);
|
||||
SwingUtilities.invokeAndWait(() -> setLookAndFeel(laf));
|
||||
|
||||
try {
|
||||
robot.setAutoDelay(50);
|
||||
SwingUtilities.invokeAndWait(new Runnable() {
|
||||
public void run() {
|
||||
bug4368790.createGui();
|
||||
}
|
||||
});
|
||||
robot.waitForIdle();
|
||||
robot.keyPress(KeyEvent.VK_SPACE);
|
||||
robot.keyPress(KeyEvent.VK_TAB);
|
||||
robot.keyRelease(KeyEvent.VK_TAB);
|
||||
robot.keyRelease(KeyEvent.VK_SPACE);
|
||||
robot.waitForIdle();
|
||||
if (b1.getModel().isPressed()) {
|
||||
throw new RuntimeException("The button is unexpectedly pressed");
|
||||
}
|
||||
});
|
||||
robot.waitForIdle();
|
||||
robot.keyPress(KeyEvent.VK_SPACE);
|
||||
robot.keyPress(KeyEvent.VK_TAB);
|
||||
robot.keyRelease(KeyEvent.VK_TAB);
|
||||
robot.keyRelease(KeyEvent.VK_SPACE);
|
||||
robot.waitForIdle();
|
||||
if (b1.getModel().isPressed()) {
|
||||
throw new RuntimeException("The button is unexpectedly pressed");
|
||||
} finally {
|
||||
if (frame != null) SwingUtilities.invokeAndWait(() -> frame.dispose());
|
||||
}
|
||||
} finally {
|
||||
if (frame != null) SwingUtilities.invokeAndWait(() -> frame.dispose());
|
||||
robot.delay(1000);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user