From d75f7c139ffd6c5df3a37cca7943a3c56a84f7ca Mon Sep 17 00:00:00 2001 From: euzuro Date: Mon, 23 Jul 2007 14:48:39 +0000 Subject: [PATCH] fix for #855 - set marker as not 'drawn' when removed from the markers layer. thanks for the great patch and tests, Eric L. git-svn-id: http://svn.openlayers.org/trunk/openlayers@3784 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Layer/Markers.js | 1 + tests/Layer/test_Markers.html | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/OpenLayers/Layer/Markers.js b/lib/OpenLayers/Layer/Markers.js index f95229b254..91373ab417 100644 --- a/lib/OpenLayers/Layer/Markers.js +++ b/lib/OpenLayers/Layer/Markers.js @@ -102,6 +102,7 @@ OpenLayers.Layer.Markers = OpenLayers.Class(OpenLayers.Layer, { if ((marker.icon != null) && (marker.icon.imageDiv != null) && (marker.icon.imageDiv.parentNode == this.div) ) { this.div.removeChild(marker.icon.imageDiv); + marker.drawn = false; } }, diff --git a/tests/Layer/test_Markers.html b/tests/Layer/test_Markers.html index d1d7a08ef7..7330b1ea8f 100644 --- a/tests/Layer/test_Markers.html +++ b/tests/Layer/test_Markers.html @@ -22,7 +22,25 @@ ); t.eq( layer.markers.length, 1, "addLayer adds marker to layer." ); } + function test_98_Layer_Markers_addMarker_removeMarker (t) { + t.plan( 3 ); + var map = new OpenLayers.Map('map'); + var baseLayer = new OpenLayers.Layer.WMS("Test Layer", + "http://octo.metacarta.com/cgi-bin/mapserv?", + {map: "/mapdata/vmap_wms.map", layers: "basic"}); + map.addLayer(baseLayer); + map.zoomToMaxExtent(); + layer = new OpenLayers.Layer.Markers('Test Layer'); + map.addLayer(layer); + var marker = new OpenLayers.Marker(new OpenLayers.LonLat(5,40)); + layer.addMarker(marker); + t.ok( marker.icon.imageDiv.parentNode == layer.div, "addMarker adds marker image node into layer node." ); + layer.removeMarker(marker); + t.ok( marker.icon.imageDiv.parentNode != layer.div, "removeMarker removes marker image node from layer node." ); + layer.addMarker(marker); + t.ok( marker.icon.imageDiv.parentNode == layer.div, "addMarker adds marker image node into layer node." ); + } function test_99_Layer_Markers_destroy (t) { t.plan( 1 ); layer = new OpenLayers.Layer.Markers('Test Layer'); @@ -35,6 +53,6 @@ -
+