From 07b46207a6db80b3748afbed11ea46973f36d5d0 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Sat, 30 Dec 2023 12:33:37 +0200 Subject: [PATCH] corrected text and GUI rectangle removal --- abstractGuiManager.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/abstractGuiManager.cpp b/abstractGuiManager.cpp index b6e9dd9..f30f2c8 100644 --- a/abstractGuiManager.cpp +++ b/abstractGuiManager.cpp @@ -207,18 +207,20 @@ namespace vb01Gui{ for (int i = 0; i < guiRectangles.size(); i++) { if (r == guiRectangles[i]) { guiRectangles.erase(guiRectangles.begin() + i); + Root::getSingleton()->getGuiNode()->dettachChild(r); delete r; break; } } } - //TODO delete node too void AbstractGuiManager::removeText(Text* t) { for (int i = 0; i < texts.size(); i++) { if (t == texts[i]) { texts.erase(texts.begin() + i); - delete t; + Node *textNode = t->getNode(); + Root::getSingleton()->getGuiNode()->dettachChild(textNode); + delete textNode; break; } } @@ -311,8 +313,10 @@ namespace vb01Gui{ while(targetId != guiRectangles.size()) { if(find(exceptions.begin(), exceptions.end(), guiRectangles[targetId]) == exceptions.end()){ - delete guiRectangles[guiRectangles.size() - 1]; + Node *guiRect = guiRectangles[guiRectangles.size() - 1]; guiRectangles.pop_back(); + Root::getSingleton()->getGuiNode()->dettachChild(guiRect); + delete guiRect; } else targetId++; @@ -322,10 +326,12 @@ namespace vb01Gui{ void AbstractGuiManager::removeAllTexts(vector exceptions) { int targetId = 0; - while(targetId != textboxes.size()) { + while(targetId != texts.size()) { if(find(exceptions.begin(), exceptions.end(), texts[targetId]) == exceptions.end()){ - delete texts[texts.size() - 1]; + Node *textNode = texts[texts.size() - 1]->getNode(); texts.pop_back(); + Root::getSingleton()->getGuiNode()->dettachChild(textNode); + delete textNode; } else targetId++;