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.
|
* {<OpenLayers.Feature.Vector>} A feature if one was under the event.
|
||||||
*/
|
*/
|
||||||
getFeatureFromEvent: function(evt) {
|
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);
|
var featureId = this.renderer.getFeatureIdFromEvent(evt);
|
||||||
return this.getFeatureById(featureId);
|
return this.getFeatureById(featureId);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -148,12 +148,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test_99_Layer_Vector_destroy (t) {
|
function test_99_Layer_Vector_destroy (t) {
|
||||||
t.plan(1);
|
t.plan(2);
|
||||||
layer = new OpenLayers.Layer.Vector(name);
|
layer = new OpenLayers.Layer.Vector(name);
|
||||||
var map = new OpenLayers.Map('map');
|
var map = new OpenLayers.Map('map');
|
||||||
map.addLayer(layer);
|
map.addLayer(layer);
|
||||||
layer.destroy();
|
layer.destroy();
|
||||||
t.eq(layer.map, null, "layer.map is null after 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) {
|
function test_Layer_Vector_externalGraphic(t) {
|
||||||
|
|||||||
Reference in New Issue
Block a user