From 7a19fd6a953e553042c01990b1274f4af1f14c12 Mon Sep 17 00:00:00 2001 From: crschmidt Date: Sun, 20 Jan 2008 20:11:38 +0000 Subject: [PATCH] Don't let the SVG renderer bail if the node we are trying to add is out of bounds *and* not yet added to the map. r=pagameba (Closes #1274) git-svn-id: http://svn.openlayers.org/trunk/openlayers@5826 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Renderer/SVG.js | 4 +++- tests/Renderer/test_SVG.html | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/OpenLayers/Renderer/SVG.js b/lib/OpenLayers/Renderer/SVG.js index 8162401cf0..9981ae1efb 100644 --- a/lib/OpenLayers/Renderer/SVG.js +++ b/lib/OpenLayers/Renderer/SVG.js @@ -336,7 +336,9 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, { node.setAttributeNS(null, "cy", y); node.setAttributeNS(null, "r", radius); } else { - this.root.removeChild(node); + if (node.parentNode == this.root) { + this.root.removeChild(node); + } } }, diff --git a/tests/Renderer/test_SVG.html b/tests/Renderer/test_SVG.html index 4cc71b0fb1..34895489bb 100644 --- a/tests/Renderer/test_SVG.html +++ b/tests/Renderer/test_SVG.html @@ -127,7 +127,7 @@ return; } - t.plan(3); + t.plan(6); var r = new OpenLayers.Renderer.SVG(document.body); r.resolution = 0.5; @@ -146,6 +146,18 @@ t.eq(node.getAttributeNS(null, 'cx'), '2', "cx is correct"); t.eq(node.getAttributeNS(null, 'cy'), '-4', "cy is correct"); t.eq(node.getAttributeNS(null, 'r'), '3', "r is correct"); + + // #1274: out of bound node fails when first added + var geometry = { + x: 10000000, + y: 200000000 + } + + r.drawCircle(node, geometry, "blah_4000"); + + t.eq(node.getAttributeNS(null, 'cx'), '2', "cx is correct"); + t.eq(node.getAttributeNS(null, 'cy'), '-4', "cy is correct"); + t.eq(node.getAttributeNS(null, 'r'), '3', "r is correct"); } function test_SVG_drawlinestring(t) { @@ -365,4 +377,4 @@
- \ No newline at end of file +