public void EndDrawing() { if (_eshape != null) { _eshape.End(); _eshape = null; } var toRemove = new List <object> (); foreach (var k in _shapes.Keys) { if (!_drawnShapes.ContainsKey(k)) { toRemove.Add(k); } } foreach (var k in toRemove) { // Log.println ("Clearing " + k); var s = _shapes[k]; s.Clear(); _shapes.Remove(k); } }