@@ -27,8 +27,9 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, {
27
27
* - *beforefeaturehighlighted* Triggered before a feature is highlighted
28
28
* - *featurehighlighted* Triggered when a feature is highlighted
29
29
* - *featureunhighlighted* Triggered when a feature is unhighlighted
30
+ * - *multipleselected* Triggered when multiple features are highlighted
30
31
*/
31
- EVENT_TYPES : [ "beforefeaturehighlighted" , "featurehighlighted" , "featureunhighlighted" ] ,
32
+ EVENT_TYPES : [ "beforefeaturehighlighted" , "featurehighlighted" , "featureunhighlighted" , "multipleselected" ] ,
32
33
33
34
/**
34
35
* Property: multipleKey
@@ -546,6 +547,7 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, {
546
547
var prevMultiple = this . multiple ;
547
548
this . multiple = true ;
548
549
var layers = this . layers || [ this . layer ] ;
550
+ var features = [ ] ;
549
551
var layer ;
550
552
for ( var l = 0 ; l < layers . length ; ++ l ) {
551
553
layer = layers [ l ] ;
@@ -561,11 +563,18 @@ OpenLayers.Control.SelectFeature = OpenLayers.Class(OpenLayers.Control, {
561
563
if ( bounds . toGeometry ( ) . intersects ( feature . geometry ) ) {
562
564
if ( OpenLayers . Util . indexOf ( layer . selectedFeatures , feature ) == - 1 ) {
563
565
this . select ( feature ) ;
566
+ features . push ( feature ) ;
564
567
}
565
568
}
566
569
}
567
570
}
568
571
}
572
+
573
+ // Trigger the multipleselected event passing in an
574
+ // array of selected features.
575
+ this . events . triggerEvent ( "multipleselected" , {
576
+ "features" :features
577
+ } ) ;
569
578
this . multiple = prevMultiple ;
570
579
}
571
580
} ,
0 commit comments