Browse Source

wxGUI: remove decorations when creating new workspace, see https://trac.osgeo.org/grass/ticket/3350

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@71165 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 8 years ago
parent
commit
36dd2f91c1
1 changed files with 10 additions and 4 deletions
  1. 10 4
      gui/wxpython/lmgr/frame.py

+ 10 - 4
gui/wxpython/lmgr/frame.py

@@ -1308,12 +1308,12 @@ class GMFrame(wx.Frame):
         if not self.currentPage:
             self.NewDisplay()
 
-        maptree = self.GetLayerTree()
+        maptrees = [self.notebookLayers.GetPage(i).maptree for i in range(self.notebookLayers.GetPageCount())]
 
         # ask user to save current settings
         if self.workspaceFile and self.workspaceChanged:
             self.OnWorkspaceSave()
-        elif self.workspaceFile is None and maptree.GetCount() > 0:
+        elif self.workspaceFile is None and any(tree.GetCount() for tree in maptrees):
             dlg = wx.MessageDialog(
                 self,
                 message=_(
@@ -1331,8 +1331,14 @@ class GMFrame(wx.Frame):
 
             dlg.Destroy()
 
-        # delete all items
-        maptree.DeleteAllLayers()
+        # delete all layers in map displays
+        for maptree in maptrees:
+            maptree.DeleteAllLayers()
+
+        # delete all decorations
+        for display in self.GetAllMapDisplays():
+            for overlayId in display.decorations.keys():
+                display.RemoveOverlay(overlayId)
 
         # no workspace file loaded
         self.workspaceFile = None