diff --git a/RetroFE/Source/Graphics/Page.cpp b/RetroFE/Source/Graphics/Page.cpp index 85653f4..620c32d 100644 --- a/RetroFE/Source/Graphics/Page.cpp +++ b/RetroFE/Source/Graphics/Page.cpp @@ -648,14 +648,17 @@ void Page::update(float dt) if(*it) (*it)->update(dt); } - // many nodes still have handles on the collection info. We need to delete - // them once everything is done using them +} + + +void Page::cleanup() +{ std::list::iterator del = deleteCollections_.begin(); while(del != deleteCollections_.end()) { MenuInfo_S &info = *del; - if(info.queueDelete && info.menu && info.menu->isIdle()) + if(info.queueDelete && info.menu) { std::list::iterator next = del; ++next; @@ -675,6 +678,7 @@ void Page::update(float dt) } } + void Page::draw() { for(unsigned int i = 0; i < NUM_LAYERS; ++i) diff --git a/RetroFE/Source/Graphics/Page.h b/RetroFE/Source/Graphics/Page.h index a8cc52a..8d0a949 100644 --- a/RetroFE/Source/Graphics/Page.h +++ b/RetroFE/Source/Graphics/Page.h @@ -78,6 +78,7 @@ public: bool isMenuIdle(); void setStatusTextComponent(Text *t); void update(float dt); + void cleanup(); void draw(); void freeGraphicsMemory(); void allocateGraphicsMemory(); diff --git a/RetroFE/Source/RetroFE.cpp b/RetroFE/Source/RetroFE.cpp index f38cd1a..e518bf6 100644 --- a/RetroFE/Source/RetroFE.cpp +++ b/RetroFE/Source/RetroFE.cpp @@ -510,6 +510,7 @@ void RetroFE::run() case RETROFE_BACK_MENU_ENTER: if(currentPage_->isIdle()) { + currentPage_->cleanup(); state = RETROFE_IDLE; } break; diff --git a/RetroFE/Source/Version.cpp b/RetroFE/Source/Version.cpp index 35d198a..5e932e0 100644 --- a/RetroFE/Source/Version.cpp +++ b/RetroFE/Source/Version.cpp @@ -20,7 +20,7 @@ std::string retrofe_version_major = "0"; std::string retrofe_version_minor = "7"; -std::string retrofe_version_build = "7"; +std::string retrofe_version_build = "8"; std::string Version::getString()