From cdbe3d616807f59162254af7ca60f00e9dfcfc15 Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Thu, 17 Jan 2013 10:44:12 -0500 Subject: [PATCH] Fix removal of elements on undo. Fixes #410 --- js/id/renderer/map.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/js/id/renderer/map.js b/js/id/renderer/map.js index 9bb695747..c0defee3f 100644 --- a/js/id/renderer/map.js +++ b/js/id/renderer/map.js @@ -62,12 +62,15 @@ iD.Map = function() { all = graph.intersects(extent); filter = d3.functor(true); } else { - var only = {}; + var only = {}, + filterOnly = {}; for (var j = 0; j < difference.length; j++) { - var id = difference[j]; - var entity = graph.fetch(id); + var id = difference[j], + entity = graph.fetch(id); + // Even if the entity is false (deleted), it needs to be + // removed from the surface + only[id] = entity; if (entity && entity.intersects(extent, graph)) { - only[id] = entity; if (only[id].type === 'node') { var parents = graph.parentWays(only[id]); for (var k = 0; k < parents.length; k++) { @@ -79,7 +82,7 @@ iD.Map = function() { } } } - all = _.values(only); + all = _.compact(_.values(only)); filter = function(d) { return d.midpoint ? d.way in only : d.id in only; }; }