From b2a4acb717c1e6d9f536bc684613f6adfb82a229 Mon Sep 17 00:00:00 2001 From: crschmidt Date: Sun, 16 Sep 2007 19:27:23 +0000 Subject: [PATCH] When you have a polygon feature over a point feature in the same layer, and you attempt to drag the point feature, you get errors about this.feature.geometry being undefined. Fix this by not unsetting this.feature inside the doneDragging. (Closes #971) git-svn-id: http://svn.openlayers.org/trunk/openlayers@4341 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Control/DragFeature.js | 1 - tests/Control/test_DragFeature.html | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/OpenLayers/Control/DragFeature.js b/lib/OpenLayers/Control/DragFeature.js index 73643d9b70..9728cac155 100644 --- a/lib/OpenLayers/Control/DragFeature.js +++ b/lib/OpenLayers/Control/DragFeature.js @@ -253,7 +253,6 @@ OpenLayers.Control.DragFeature = OpenLayers.Class(OpenLayers.Control, { */ doneDragging: function(pixel) { this.onComplete(this.feature, pixel); - this.feature = null; }, /** diff --git a/tests/Control/test_DragFeature.html b/tests/Control/test_DragFeature.html index c5fd8bf8b0..e6de4ff3cc 100644 --- a/tests/Control/test_DragFeature.html +++ b/tests/Control/test_DragFeature.html @@ -163,6 +163,30 @@ map.events.triggerEvent("mousemove", {xy: move, which: 1}); } + + function test_Control_DragFeature_done(t) { + t.plan(2); + var map = new OpenLayers.Map("map"); + var layer = new OpenLayers.Layer.Vector(); + map.addLayer(layer); + var control = new OpenLayers.Control.DragFeature(layer); + map.addControl(control); + + control.activate(); + + + // simulate a mouseover on a feature + layer.getFeatureFromEvent = function() { + return "foo"; + }; + map.events.triggerEvent("mousemove"); + t.eq(control.feature, "foo", + "feature is set on mouse over"); + control.doneDragging(); + t.eq(control.feature, "foo", + "feature sticks around after doneDragging is called."); + + } function test_Control_DragFeature_out(t) { t.plan(2);