fixed event handling and rendering of graphicName symbols for Safari and Opera. r=crschmidt (closes #1653)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@7671 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2008-08-01 21:35:35 +00:00
parent eddfa62c1f
commit 197043d249
2 changed files with 13 additions and 2 deletions

View File

@@ -250,11 +250,19 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
// This is a workaround for strange rendering behavior in FF3.
if (node.getAttributeNS(this.xlinkns, "href") != href) {
node.setAttributeNS(this.xlinkns, "href", href);
} else if (size != parseFloat(node.getAttributeNS(null, "width"))) {
// hide the element (and force a reflow so it really gets
// hidden. This workaround is needed for Safari.
node.style.visibility = "hidden";
this.container.scrollLeft = this.container.scrollLeft;
}
node.setAttributeNS(null, "width", size);
node.setAttributeNS(null, "height", size);
node.setAttributeNS(null, "x", pos.x - offset);
node.setAttributeNS(null, "y", pos.y - offset);
// set the visibility back to normal (after the Safari
// workaround above)
node.style.visibility = "";
} else {
node.setAttributeNS(null, "r", style.pointRadius);
}