Currently, loading solutions while freeze mode is enabled can lead to various problematic behavior:
Running expensive computations anyways (eg, when loadCachedUndoBlocks needs to trigger a dot plot update)
Leaving some information out of date while other information is up to date, leading to potential player confusion (eg, if some information is not in the cached undo block and the previous state is used) - and potentially changing which information is out of date or not between designs based on whether/how much data is cached
Crashes (eg, with no cached undo block and you try to load the native structure)
Now, we instead prevent changing solutions to avoid these cases
Implementation Notes
There are use cases where it could be valuable to scroll through designs while frozen, even if not all information is available. Ideally in the future, we can display as much information as we have cached (or can trivially calculate) and mark other things as "unavailable". However, that will require more work than we have time for right now, so instead I am doing this to prevent more significant problems from occurring (talking to a couple users, this is not something anyone currently does anyways).
Testing
Opened a solution, changed solutions, froze, tried changing. Tried with dialog open and closed
Summary
Currently, loading solutions while freeze mode is enabled can lead to various problematic behavior:
Now, we instead prevent changing solutions to avoid these cases
Implementation Notes
There are use cases where it could be valuable to scroll through designs while frozen, even if not all information is available. Ideally in the future, we can display as much information as we have cached (or can trivially calculate) and mark other things as "unavailable". However, that will require more work than we have time for right now, so instead I am doing this to prevent more significant problems from occurring (talking to a couple users, this is not something anyone currently does anyways).
Testing
Opened a solution, changed solutions, froze, tried changing. Tried with dialog open and closed