Fix for getFeatureFromEvent method on destroyed layer. (Closes #761) Review
by elem (yay) git-svn-id: http://svn.openlayers.org/trunk/openlayers@4220 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -361,6 +361,10 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, {
|
||||
* {<OpenLayers.Feature.Vector>} A feature if one was under the event.
|
||||
*/
|
||||
getFeatureFromEvent: function(evt) {
|
||||
if (!this.renderer) {
|
||||
OpenLayers.Console.error("getFeatureFromEvent called on layer with no renderer. This usually means you destroyed a layer, but not some handler which is associated with it.");
|
||||
return null;
|
||||
}
|
||||
var featureId = this.renderer.getFeatureIdFromEvent(evt);
|
||||
return this.getFeatureById(featureId);
|
||||
},
|
||||
|
||||
@@ -148,12 +148,13 @@
|
||||
}
|
||||
|
||||
function test_99_Layer_Vector_destroy (t) {
|
||||
t.plan(1);
|
||||
t.plan(2);
|
||||
layer = new OpenLayers.Layer.Vector(name);
|
||||
var map = new OpenLayers.Map('map');
|
||||
map.addLayer(layer);
|
||||
layer.destroy();
|
||||
t.eq(layer.map, null, "layer.map is null after destroy");
|
||||
t.eq(layer.getFeatureFromEvent({'target':'map'}), null, "getFeatureIdFromEvent doesn't cause an error when called on layer which has been destroyed.");
|
||||
}
|
||||
|
||||
function test_Layer_Vector_externalGraphic(t) {
|
||||
|
||||
Reference in New Issue
Block a user