1
1
/*
2
- * Copyright (c) 2012, 2018 , Oracle and/or its affiliates. All rights reserved.
2
+ * Copyright (c) 2012, 2022 , Oracle and/or its affiliates. All rights reserved.
3
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
4
*
5
5
* This code is free software; you can redistribute it and/or modify it
21
21
* questions.
22
22
*/
23
23
24
- /**
24
+ /*
25
25
* @test
26
26
* @key headful
27
27
* @bug 7160951 8152492 8178448
28
28
* @summary [macosx] ActionListener called twice for JMenuItem using ScreenMenuBar
29
- * @author vera.akulova@oracle.com
30
- * @modules java.desktop/java.awt:open
31
- * @library /test/lib
32
- * @build jdk.test.lib.Platform
29
+ * @requires (os.family == "mac")
33
30
* @run main ActionListenerCalledTwiceTest
34
31
*/
35
32
36
- import jdk .test .lib .Platform ;
37
- import java .awt .*;
38
- import java .awt .event .*;
39
- import javax .swing .*;
33
+ import java .awt .Desktop ;
34
+ import java .awt .Robot ;
35
+ import java .awt .event .InputEvent ;
36
+ import java .awt .event .KeyEvent ;
37
+ import javax .swing .JFrame ;
38
+ import javax .swing .JMenu ;
39
+ import javax .swing .JMenuBar ;
40
+ import javax .swing .JMenuItem ;
41
+ import javax .swing .KeyStroke ;
42
+ import javax .swing .SwingUtilities ;
40
43
41
44
public class ActionListenerCalledTwiceTest {
42
45
43
- static String menuItems [] = {"Item1" , "Item2" , "Item3" ,
44
- "Item4" , "Item5" , "Item6" };
45
- static KeyStroke keyStrokes [] = {
46
- KeyStroke .getKeyStroke (KeyEvent .VK_E , InputEvent .META_MASK ),
46
+ static final String [] menuItems = { "Item1" , "Item2" , "Item3" ,
47
+ "Item4" , "Item5" , "Item6" };
48
+ static final KeyStroke [] keyStrokes = {
49
+ KeyStroke .getKeyStroke (KeyEvent .VK_E , InputEvent .META_DOWN_MASK ),
47
50
KeyStroke .getKeyStroke (KeyEvent .VK_DELETE , 0 ),
48
- KeyStroke .getKeyStroke (KeyEvent .VK_UP , InputEvent .SHIFT_MASK ),
49
- KeyStroke .getKeyStroke (KeyEvent .VK_ENTER , InputEvent .META_MASK ),
50
- KeyStroke .getKeyStroke (KeyEvent .VK_E , InputEvent .CTRL_MASK ),
51
- KeyStroke .getKeyStroke (KeyEvent .VK_EQUALS , InputEvent .META_MASK )
51
+ KeyStroke .getKeyStroke (KeyEvent .VK_UP , InputEvent .SHIFT_DOWN_MASK ),
52
+ KeyStroke .getKeyStroke (KeyEvent .VK_ENTER , InputEvent .META_DOWN_MASK ),
53
+ KeyStroke .getKeyStroke (KeyEvent .VK_E , InputEvent .CTRL_DOWN_MASK ),
54
+ KeyStroke .getKeyStroke (KeyEvent .VK_EQUALS , InputEvent .META_DOWN_MASK )
52
55
};
53
56
54
57
static JMenuBar bar ;
55
58
static JFrame frame ;
56
59
static volatile int listenerCallCounter = 0 ;
57
60
58
61
public static void main (String [] args ) throws Exception {
59
- if (!Platform . isOSX ( )) {
62
+ if (!System . getProperty ( "os.name" ). toLowerCase (). startsWith ( "mac" )) {
60
63
System .out .println ("This test is for MacOS only." +
61
64
" Automatically passed on other platforms." );
62
65
return ;
@@ -81,7 +84,10 @@ public static void main(String[] args) throws Exception {
81
84
82
85
testForTwice (robot , "DefaultMenuBar" );
83
86
} finally {
84
- SwingUtilities .invokeAndWait (() -> frame .dispose ());
87
+ SwingUtilities .invokeAndWait (() -> {
88
+ frame .dispose ();
89
+ Desktop .getDesktop ().setDefaultMenuBar (null );
90
+ });
85
91
}
86
92
}
87
93
0 commit comments