diff --git a/app/src/processing/app/Mode.java b/app/src/processing/app/Mode.java index c7ceb1e2e2..2e6087fd56 100644 --- a/app/src/processing/app/Mode.java +++ b/app/src/processing/app/Mode.java @@ -656,6 +656,7 @@ public void rebuildExamplesFrame() { if (visible) { bounds = examplesFrame.getBounds(); examplesFrame.setVisible(false); + examplesFrame.dispose(); } examplesFrame = null; if (visible) { @@ -691,11 +692,19 @@ public DefaultMutableTreeNode buildSketchbookTree() { /** Sketchbook has changed, update it on next viewing. */ public void rebuildSketchbookFrame() { - boolean wasVisible = - (sketchbookFrame == null) ? false : sketchbookFrame.isVisible(); - sketchbookFrame = null; // Force a rebuild - if (wasVisible) { - showSketchbookFrame(); + if (sketchbookFrame != null) { + boolean visible = sketchbookFrame.isVisible(); + Rectangle bounds = null; + if (visible) { + bounds = sketchbookFrame.getBounds(); + sketchbookFrame.setVisible(false); + sketchbookFrame.dispose(); + } + sketchbookFrame = null; + if (visible) { + showSketchbookFrame(); + sketchbookFrame.setBounds(bounds); + } } } diff --git a/app/src/processing/app/Sketch.java b/app/src/processing/app/Sketch.java index 214080f2bb..9a01d991c6 100644 --- a/app/src/processing/app/Sketch.java +++ b/app/src/processing/app/Sketch.java @@ -657,9 +657,10 @@ public void handleDeleteCode() { // get the changes into the sketchbook menu //sketchbook.rebuildMenus(); - // make a new sketch, and i think this will rebuild the sketch menu + // make a new sketch and rebuild the sketch menu //editor.handleNewUnchecked(); //editor.handleClose2(); + editor.getBase().rebuildSketchbookMenus(); editor.getBase().handleClose(editor, false); } else {