Save-state: Draw the frame,buttons,etc as soon as we know the Apple2Type, to remove the issue where the drive buttons appear before the rest of the buttons. (Repro: Loading a 32MB gzip'ed HDD image from the command line.)

This commit is contained in:
tomcw 2016-12-11 16:31:25 +00:00
parent 345200972b
commit ab04e46f61

View File

@ -209,7 +209,10 @@ static void Snapshot_LoadState_v1() // .aws v1.0.0.1, up to (and including) Appl
MemUpdatePaging(TRUE); MemUpdatePaging(TRUE);
// NB. g_Apple2Type doesn't change for v1, but replicate this (like v2)
SetCharsetType();
VideoReinitialize(); // g_CharsetType changed VideoReinitialize(); // g_CharsetType changed
FrameUpdateApple2Type();
} }
catch(std::string szMessage) catch(std::string szMessage)
{ {
@ -334,6 +337,11 @@ static void ParseUnitApple2(YamlLoadHelper& yamlLoadHelper, UINT version)
SpkrLoadSnapshot(yamlLoadHelper); SpkrLoadSnapshot(yamlLoadHelper);
VideoLoadSnapshot(yamlLoadHelper); VideoLoadSnapshot(yamlLoadHelper);
MemLoadSnapshot(yamlLoadHelper); MemLoadSnapshot(yamlLoadHelper);
// g_Apple2Type may've changed: so redraw frame (title, buttons, leds, etc)
SetCharsetType();
VideoReinitialize(); // g_CharsetType changed
FrameUpdateApple2Type();
} }
//--- //---
@ -519,11 +527,6 @@ static void Snapshot_LoadState_v2(void)
MemInitializeIO(); MemInitializeIO();
MemUpdatePaging(TRUE); MemUpdatePaging(TRUE);
// g_Apple2Type may've changed: so redraw frame (title, buttons, leds, etc)
SetCharsetType();
VideoReinitialize(); // g_CharsetType changed
FrameUpdateApple2Type();
} }
catch(std::string szMessage) catch(std::string szMessage)
{ {