Skip to content

Commit 2f3a561

Browse files
committed
Fix rebuild being triggered on every menu open()
Fixes #7924 JRE 8u161 made JMenu.insert() MUCH slower on OSX. This exposed a bug lurking there for years; in fact the menu entries were rebuilt every time since JMenu.getComponent() returns an empty list. The correct function is JMenu.getMenuComponents(). In the meantime, also remove sketchbookMenu and examplesMenu being deleted on board change; only their content needs to be updated, not the container itself.
1 parent 49cd9b5 commit 2f3a561

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

app/src/processing/app/Editor.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,6 @@ public void windowActivated(WindowEvent e) {
262262
// added for 1.0.5
263263
// http://dev.processing.org/bugs/show_bug.cgi?id=1260
264264
public void windowDeactivated(WindowEvent e) {
265-
fileMenu.remove(sketchbookMenu);
266-
fileMenu.remove(examplesMenu);
267265
List<Component> toolsMenuItemsToRemove = new LinkedList<>();
268266
for (Component menuItem : toolsMenu.getMenuComponents()) {
269267
if (menuItem instanceof JComponent) {
@@ -504,7 +502,7 @@ private void buildMenuBar() {
504502
fileMenu.addMenuListener(new StubMenuListener() {
505503
@Override
506504
public void menuSelected(MenuEvent e) {
507-
List<Component> components = Arrays.asList(fileMenu.getComponents());
505+
List<Component> components = Arrays.asList(fileMenu.getMenuComponents());
508506
if (!components.contains(sketchbookMenu)) {
509507
fileMenu.insert(sketchbookMenu, 3);
510508
}
@@ -537,7 +535,7 @@ public void menuSelected(MenuEvent e) {
537535
toolsMenu.addMenuListener(new StubMenuListener() {
538536
@Override
539537
public void menuSelected(MenuEvent e) {
540-
List<Component> components = Arrays.asList(toolsMenu.getComponents());
538+
List<Component> components = Arrays.asList(toolsMenu.getMenuComponents());
541539
int offset = 0;
542540
for (JMenu menu : base.getBoardsCustomMenus()) {
543541
if (!components.contains(menu)) {

0 commit comments

Comments
 (0)