diff --git a/lib/OpenLayers/Layer/Vector.js b/lib/OpenLayers/Layer/Vector.js index 8a3d826d86..0cd320eeec 100644 --- a/lib/OpenLayers/Layer/Vector.js +++ b/lib/OpenLayers/Layer/Vector.js @@ -54,6 +54,9 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { * beforefeatureremoved - Triggered before a feature is removed. Listeners * will receive an object with a *feature* property referencing the * feature to be removed. + * beforefeaturesremoved - Triggered before multiple features are removed. + * Listeners will receive an object with a *features* property + * referencing the features to be removed. * featureremoved - Triggerd after a feature is removed. The event * object passed to listeners will have a *feature* property with a * reference to the removed feature. @@ -97,8 +100,8 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { * for a new set of features. */ EVENT_TYPES: ["beforefeatureadded", "beforefeaturesadded", - "featureadded", "featuresadded", - "beforefeatureremoved", "featureremoved", "featuresremoved", + "featureadded", "featuresadded", "beforefeatureremoved", + "beforefeaturesremoved", "featureremoved", "featuresremoved", "beforefeatureselected", "featureselected", "featureunselected", "beforefeaturemodified", "featuremodified", "afterfeaturemodified", "vertexmodified", "sketchstarted", "sketchmodified", @@ -621,6 +624,12 @@ OpenLayers.Layer.Vector = OpenLayers.Class(OpenLayers.Layer, { } var notify = !options || !options.silent; + + if (notify) { + this.events.triggerEvent( + "beforefeaturesremoved", {features: features} + ); + } for (var i = features.length - 1; i >= 0; i--) { // We remain locked so long as we're not at 0