Hmm, that is interesting. That value stores which monitor Spine was last run on, so next time it opens it will appear on the same monitor. It isn't clear yet why that would hang!
When there is no prefs.json
file or when it doesn't have a monitor value, it uses the system's default monitor. That seems to work fine for you. When Spine closes, it records the index of the monitor it was on. Next time it runs it uses that monitor index to decide where to create the window. The index should match the same monitor, unless you swap monitors around while Spine is closed. It must be something about the monitor that is causing Spine to be unable to create the window. It would be much better if it would crash and print an error in the spine.log
file, rather than hang.
Can you please try running Spine, putting it on one of your monitors, closing Spine, then running it again? Then repeat with the other monitor. The goal is to see if it works on one monitor but not the other. If it fails on both, you could try disconnecting the external monitor.
Are you running the latest graphics drivers for your laptop? That may help.