v0.7.3: adjusted window saving to block restoring to a different scene type

This commit is contained in:
Evan Debenham 2019-05-09 18:45:47 -04:00
parent 133a39026e
commit 7ca293bcc5

View File

@ -136,9 +136,11 @@ public class PixelScene extends Scene {
//FIXME this system currently only works for a subset of windows
private static ArrayList<Class<?extends Window>> savedWindows = new ArrayList<>();
private static Class<?extends PixelScene> savedClass = null;
public void saveWindows(){
savedWindows.clear();
savedClass = getClass();
for (Gizmo g : members){
if (g instanceof Window){
savedWindows.add((Class<? extends Window>) g.getClass());
@ -147,7 +149,7 @@ public class PixelScene extends Scene {
}
public void restoreWindows(){
if (!savedWindows.isEmpty()){
if (getClass().equals(savedClass)){
for (Class<?extends Window> w : savedWindows){
try{
add(w.newInstance());
@ -155,8 +157,8 @@ public class PixelScene extends Scene {
//window has no public zero-arg constructor, just eat the exception
}
}
savedWindows.clear();
}
savedWindows.clear();
}
@Override