From c468cf1e0a53f537f6b3f8691a8ccfda74540ed3 Mon Sep 17 00:00:00 2001 From: RKrom Date: Mon, 14 May 2012 16:28:50 +0000 Subject: [PATCH] Fixed bug #3526616, modifying a collection while iterating over it. git-svn-id: http://svn.code.sf.net/p/greenshot/code/trunk@1849 7dccd23d-a4a3-4e1f-8c07-b4c1b4018ab4 --- Greenshot/Drawing/DrawableContainerList.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Greenshot/Drawing/DrawableContainerList.cs b/Greenshot/Drawing/DrawableContainerList.cs index 955cae074..294ba5e33 100644 --- a/Greenshot/Drawing/DrawableContainerList.cs +++ b/Greenshot/Drawing/DrawableContainerList.cs @@ -435,7 +435,11 @@ namespace Greenshot.Drawing { item.Image = ((System.Drawing.Image)(editorFormResources.GetObject("btnCut.Image"))); item.Click += delegate { ClipboardHelper.SetClipboardData(typeof(DrawableContainerList), this); + List containersToDelete = new List(); foreach (DrawableContainer container in this) { + containersToDelete.Add(container); + } + foreach (DrawableContainer container in containersToDelete) { surface.RemoveElement(container, true); } }; @@ -445,7 +449,11 @@ namespace Greenshot.Drawing { item = new ToolStripMenuItem(Language.GetString(LangKey.editor_deleteelement)); item.Image = ((System.Drawing.Image)(editorFormResources.GetObject("removeObjectToolStripMenuItem.Image"))); item.Click += delegate { + List containersToDelete = new List(); foreach(DrawableContainer container in this) { + containersToDelete.Add(container); + } + foreach (DrawableContainer container in containersToDelete) { surface.RemoveElement(container, true); } };