1
0
mirror of https://github.com/arduino/Arduino.git synced 2025-03-13 10:29:35 +01:00

Maximized state of IDE gets properly stored and restored. Fixes #2909

This commit is contained in:
Federico Fissore 2015-06-22 13:11:34 +02:00
parent d00ca7f387
commit f255319f91
2 changed files with 16 additions and 8 deletions

View File

@ -558,7 +558,7 @@ public class Base {
location = nextEditorLocation();
}
// If file did not exist, null will be returned for the Editor
if (handleOpen(new File(path), location, true, false, false) != null) {
if (handleOpen(new File(path), location, nextEditorLocation(), true, false, false) != null) {
opened++;
}
}
@ -890,10 +890,10 @@ public class Base {
}
protected Editor handleOpen(File file, int[] location, boolean showEditor, boolean untitled) throws Exception {
return handleOpen(file, location, showEditor, true, untitled);
return handleOpen(file, location, location, showEditor, true, untitled);
}
protected Editor handleOpen(File file, int[] location, boolean showEditor, boolean storeOpenedSketches, boolean untitled) throws Exception {
protected Editor handleOpen(File file, int[] storedLocation, int[] defaultLocation, boolean showEditor, boolean storeOpenedSketches, boolean untitled) throws Exception {
if (!file.exists()) return null;
// Cycle through open windows to make sure that it's not already open.
@ -905,7 +905,7 @@ public class Base {
}
}
final Editor editor = new Editor(this, file, location, BaseNoGui.getPlatform());
Editor editor = new Editor(this, file, storedLocation, defaultLocation, BaseNoGui.getPlatform());
// Make sure that the sketch actually loaded
if (editor.getSketch() == null) {

View File

@ -179,7 +179,7 @@ public class Editor extends JFrame implements RunnerListener {
private Runnable exportAppHandler;
public Editor(Base ibase, File file, int[] location, Platform platform) throws Exception {
public Editor(Base ibase, File file, int[] storedLocation, int[] defaultLocation, Platform platform) throws Exception {
super("Arduino");
this.base = ibase;
this.platform = platform;
@ -326,7 +326,7 @@ public class Editor extends JFrame implements RunnerListener {
// System.out.println("t2");
// Set the window bounds and the divider location before setting it visible
setPlacement(location);
setPlacement(storedLocation, defaultLocation);
// Set the minimum size for the editor window
@ -414,6 +414,14 @@ public class Editor extends JFrame implements RunnerListener {
}
}
private void setPlacement(int[] storedLocation, int[] defaultLocation) {
if (storedLocation.length > 5 && storedLocation[5] != 0) {
setExtendedState(storedLocation[5]);
setPlacement(defaultLocation);
} else {
setPlacement(storedLocation);
}
}
private void setPlacement(int[] location) {
setBounds(location[0], location[1], location[2], location[3]);
@ -422,9 +430,8 @@ public class Editor extends JFrame implements RunnerListener {
}
}
protected int[] getPlacement() {
int[] location = new int[5];
int[] location = new int[6];
// Get the dimensions of the Frame
Rectangle bounds = getBounds();
@ -435,6 +442,7 @@ public class Editor extends JFrame implements RunnerListener {
// Get the current placement of the divider
location[4] = splitPane.getDividerLocation();
location[5] = getExtendedState() & MAXIMIZED_BOTH;
return location;
}