diff --git a/lib/OpenLayers/Control/TransformFeature.js b/lib/OpenLayers/Control/TransformFeature.js index 72944228b8..a52f8d84fd 100644 --- a/lib/OpenLayers/Control/TransformFeature.js +++ b/lib/OpenLayers/Control/TransformFeature.js @@ -399,10 +399,6 @@ OpenLayers.Control.TransformFeature = OpenLayers.Class(OpenLayers.Control, { if (control.irregular && !control._setfeature) { dx1 -= (this.x - oldGeom.x) / 2; dy1 -= (this.y - oldGeom.y) / 2; - var newCenter = centerGeometry.clone(); - newCenter.x += Math.abs(dx0) < 0.00001 ? 0 : (this.x - oldGeom.x) / 2; - newCenter.y += Math.abs(dy0) < 0.00001 ? 0 : (this.y - oldGeom.y) / 2; - control.transformFeature({center: newCenter}); } this.x = oldX; this.y = oldY; @@ -424,8 +420,14 @@ OpenLayers.Control.TransformFeature = OpenLayers.Class(OpenLayers.Control, { control.box.geometry.resize(scale, centerGeometry, ratio); control.box.geometry.rotate(control.rotation, centerGeometry); - control.box.move(control.feature.geometry.getBounds().getCenterLonLat()); control.transformFeature({scale: scale, ratio: ratio}); + if (control.irregular && !control._setfeature) { + var newCenter = centerGeometry.clone(); + newCenter.x += Math.abs(oldX - centerGeometry.x) < 0.00001 ? 0 : (this.x - oldX); + newCenter.y += Math.abs(oldY - centerGeometry.y) < 0.00001 ? 0 : (this.y - oldY); + control.box.geometry.move(this.x - oldX, this.y - oldY); + control.transformFeature({center: newCenter}); + } }; // Override for rotation handle move - make sure that the box and