(Closes #2148) enable vector features to be selectable from their text node. r=ahocevar
git-svn-id: http://svn.openlayers.org/trunk/openlayers@9671 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -673,7 +673,6 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
|
||||
|
||||
label.setAttributeNS(null, "x", x);
|
||||
label.setAttributeNS(null, "y", -y);
|
||||
label.setAttributeNS(null, "pointer-events", "none");
|
||||
|
||||
if (style.fontColor) {
|
||||
label.setAttributeNS(null, "fill", style.fontColor);
|
||||
@@ -687,6 +686,15 @@ OpenLayers.Renderer.SVG = OpenLayers.Class(OpenLayers.Renderer.Elements, {
|
||||
if (style.fontWeight) {
|
||||
label.setAttributeNS(null, "font-weight", style.fontWeight);
|
||||
}
|
||||
if(style.labelSelect === true) {
|
||||
label.setAttributeNS(null, "pointer-events", "visible");
|
||||
label._featureId = featureId;
|
||||
tspan._featureId = featureId;
|
||||
tspan._geometry = location;
|
||||
tspan._geometryClass = location.CLASS_NAME;
|
||||
} else {
|
||||
label.setAttributeNS(null, "pointer-events", "none");
|
||||
}
|
||||
var align = style.labelAlign || "cm";
|
||||
label.setAttributeNS(null, "text-anchor",
|
||||
OpenLayers.Renderer.SVG.LABEL_ALIGN[align[0]] || "middle");
|
||||
|
||||
@@ -818,6 +818,12 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, {
|
||||
if (style.fontWeight) {
|
||||
textbox.style.fontWeight = style.fontWeight;
|
||||
}
|
||||
if(style.labelSelect === true) {
|
||||
label._featureId = featureId;
|
||||
textbox._featureId = featureId;
|
||||
textbox._geometry = location;
|
||||
textbox._geometryClass = location.CLASS_NAME;
|
||||
}
|
||||
textbox.style.whiteSpace = "nowrap";
|
||||
// fun with IE: IE7 in standards compliant mode does not display any
|
||||
// text with a left inset of 0. So we set this to 1px and subtract one
|
||||
@@ -836,6 +842,7 @@ OpenLayers.Renderer.VML = OpenLayers.Class(OpenLayers.Renderer.Elements, {
|
||||
(OpenLayers.Renderer.VML.LABEL_SHIFT[align.substr(1,1)]);
|
||||
label.style.left = parseInt(label.style.left)-xshift-1+"px";
|
||||
label.style.top = parseInt(label.style.top)+yshift+"px";
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user