Skip to content

Commit 2334295

Browse files
committed
Fix concurrent access to menuItemsToClickAfterStartup
1 parent db1cacd commit 2334295

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

Diff for: app/src/processing/app/Base.java

+11-13
Original file line numberDiff line numberDiff line change
@@ -1382,7 +1382,7 @@ public void rebuildRecentBoardsMenu() throws Exception {
13821382
buttonGroupsMap,
13831383
board, board.getContainerPlatform(), board.getContainerPlatform().getContainerPackage());
13841384
boardMenu.insert(item, 3);
1385-
item.setAccelerator(KeyStroke.getKeyStroke('0' + index,
1385+
item.setAccelerator(KeyStroke.getKeyStroke('1' + index,
13861386
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask() |
13871387
ActionEvent.SHIFT_MASK));
13881388
recentBoardsButtonGroup.add(item);
@@ -1527,18 +1527,14 @@ public void actionPerformed(ActionEvent actionevent) {
15271527
}
15281528
}
15291529

1530-
menuItemsToClickAfterStartup = new LinkedList<>();
1530+
List<JMenuItem> _menuItemsToClickAfterStartup = new LinkedList<>();
15311531
boardsButtonGroup = new ButtonGroup();
15321532
recentBoardsButtonGroup = new ButtonGroup();
15331533
buttonGroupsMap = new HashMap<>();
15341534

1535-
if (BaseNoGui.getRecentlyUsedBoards() != null) {
1536-
JMenuItem recentLabel = new JMenuItem(tr("Recently used boards"));
1537-
recentLabel.setEnabled(false);
1538-
boardMenu.add(recentLabel);
1539-
rebuildRecentBoardsMenu();
1540-
//rebuildRecentBoardsMenu(null);
1541-
}
1535+
JMenuItem recentLabel = new JMenuItem(tr("Recently used boards"));
1536+
recentLabel.setEnabled(false);
1537+
boardMenu.add(recentLabel);
15421538

15431539
// Cycle through all packages
15441540
for (TargetPackage targetPackage : BaseNoGui.packages.values()) {
@@ -1560,7 +1556,7 @@ public void actionPerformed(ActionEvent actionevent) {
15601556
for (TargetBoard board : targetPlatform.getBoards().values()) {
15611557
if (board.getPreferences().get("hide") != null)
15621558
continue;
1563-
JMenuItem item = createBoardMenusAndCustomMenus(boardsCustomMenus, menuItemsToClickAfterStartup,
1559+
JMenuItem item = createBoardMenusAndCustomMenus(boardsCustomMenus, _menuItemsToClickAfterStartup,
15641560
buttonGroupsMap,
15651561
board, targetPlatform, targetPackage);
15661562
boardMenu.add(item);
@@ -1569,14 +1565,16 @@ public void actionPerformed(ActionEvent actionevent) {
15691565
}
15701566
}
15711567

1572-
if (menuItemsToClickAfterStartup.isEmpty()) {
1573-
menuItemsToClickAfterStartup.add(selectFirstEnabledMenuItem(boardMenu));
1568+
if (_menuItemsToClickAfterStartup.isEmpty()) {
1569+
_menuItemsToClickAfterStartup.add(selectFirstEnabledMenuItem(boardMenu));
15741570
}
15751571

1576-
for (JMenuItem menuItemToClick : menuItemsToClickAfterStartup) {
1572+
for (JMenuItem menuItemToClick : _menuItemsToClickAfterStartup) {
15771573
menuItemToClick.setSelected(true);
15781574
menuItemToClick.getAction().actionPerformed(new ActionEvent(this, -1, ""));
15791575
}
1576+
1577+
menuItemsToClickAfterStartup = _menuItemsToClickAfterStartup;
15801578
}
15811579

15821580
private String getPlatformUniqueId(TargetPlatform platform) {

0 commit comments

Comments
 (0)