do not reuse event objects to avoid incorrect event types. r=bartvde (closes #3280)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11958 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2011-05-09 07:36:57 +00:00
parent 491a5c0f62
commit 5e7c501539
2 changed files with 34 additions and 5 deletions

View File

@@ -232,6 +232,9 @@ OpenLayers.Control.TransformFeature = OpenLayers.Class(OpenLayers.Control, {
this.dragControl.deactivate();
deactivated = true;
}
if (deactivated) {
this.unsetFeature();
}
return deactivated;
},
@@ -265,13 +268,15 @@ OpenLayers.Control.TransformFeature = OpenLayers.Class(OpenLayers.Control, {
scale: 1,
ratio: 1
});
var evt = {feature: feature};
var oldRotation = this.rotation;
var oldCenter = this.center;
OpenLayers.Util.extend(this, initialParams);
if(this.events.triggerEvent("beforesetfeature", evt) === false) {
var cont = this.events.triggerEvent("beforesetfeature",
{feature: feature}
);
if (cont === false) {
return;
}
@@ -303,7 +308,23 @@ OpenLayers.Control.TransformFeature = OpenLayers.Class(OpenLayers.Control, {
delete this._setfeature;
this.events.triggerEvent("setfeature", evt);
this.events.triggerEvent("setfeature", {feature: feature});
},
/**
* APIMethod: unsetFeature
* Remove the transformation box off any feature.
* If the control is active, it will be deactivated first.
*/
unsetFeature: function() {
if (this.active) {
this.deactivate();
} else {
this.feature = null;
this.rotation = 0;
this.scale = 1;
this.ratio = 1;
}
},
/**