From 72d0a69132864c5d84fcf9b3a021acdfe452d412 Mon Sep 17 00:00:00 2001
From: scrawl <scrawl@baseoftrash.de>
Date: Thu, 28 May 2015 18:44:34 +0200
Subject: [PATCH] Fix global map markers not being cleared on a new game

---
 apps/openmw/mwgui/mapwindow.cpp | 6 ++++--
 apps/openmw/mwgui/mapwindow.hpp | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/apps/openmw/mwgui/mapwindow.cpp b/apps/openmw/mwgui/mapwindow.cpp
index 8d2aaf04a8..3a56d3dfd1 100644
--- a/apps/openmw/mwgui/mapwindow.cpp
+++ b/apps/openmw/mwgui/mapwindow.cpp
@@ -782,6 +782,7 @@ namespace MWGui
             markerWidget->setDepth(Global_MarkerLayer);
             markerWidget->eventMouseDrag += MyGUI::newDelegate(this, &MapWindow::onMouseDrag);
             markerWidget->eventMouseButtonPressed += MyGUI::newDelegate(this, &MapWindow::onDragStart);
+            mGlobalMapMarkers.push_back(markerWidget);
         }
     }
 
@@ -899,8 +900,9 @@ namespace MWGui
         mGlobalMapRender->clear();
         mChanged = true;
 
-        while (mEventBoxGlobal->getChildCount())
-            MyGUI::Gui::getInstance().destroyWidget(mEventBoxGlobal->getChildAt(0));
+        for (std::vector<MyGUI::Widget*>::iterator it = mGlobalMapMarkers.begin(); it != mGlobalMapMarkers.end(); ++it)
+            MyGUI::Gui::getInstance().destroyWidget(*it);
+        mGlobalMapMarkers.clear();
     }
 
     void MapWindow::write(ESM::ESMWriter &writer, Loading::Listener& progress)
diff --git a/apps/openmw/mwgui/mapwindow.hpp b/apps/openmw/mwgui/mapwindow.hpp
index b44b545d20..40ccbda5f1 100644
--- a/apps/openmw/mwgui/mapwindow.hpp
+++ b/apps/openmw/mwgui/mapwindow.hpp
@@ -236,6 +236,8 @@ namespace MWGui
 
         MWRender::GlobalMap* mGlobalMapRender;
 
+        std::vector<MyGUI::Widget*> mGlobalMapMarkers;
+
         EditNoteDialog mEditNoteDialog;
         ESM::CustomMarker mEditingMarker;