@@ -1116,14 +1116,13 @@ function reselect(gd, selectionTesters, searchTraces, dragOptions) {
1116
1116
var eventData = { points : allSelections } ;
1117
1117
updateSelectedState ( gd , allSearchTraces , eventData ) ;
1118
1118
1119
+ var clickmode = fullLayout . clickmode ;
1120
+ var sendEvents = clickmode . indexOf ( 'event' ) > - 1 ;
1121
+
1119
1122
if (
1120
1123
! plotinfo && // get called from plot_api & plots
1121
- fullLayout . _reselect === true
1124
+ fullLayout . _reselect
1122
1125
) {
1123
- fullLayout . _reselect = false ;
1124
-
1125
- var clickmode = fullLayout . clickmode ;
1126
- var sendEvents = clickmode . indexOf ( 'event' ) > - 1 ;
1127
1126
if ( sendEvents ) {
1128
1127
var activePolygons = getLayoutPolygons ( gd , true ) ;
1129
1128
@@ -1142,6 +1141,37 @@ function reselect(gd, selectionTesters, searchTraces, dragOptions) {
1142
1141
1143
1142
gd . emit ( 'plotly_selected' , eventData ) ;
1144
1143
}
1144
+
1145
+ fullLayout . _reselect = false ;
1146
+ }
1147
+
1148
+ if (
1149
+ ! plotinfo && // get called from plot_api & plots
1150
+ fullLayout . _deselect
1151
+ ) {
1152
+ var deselect = fullLayout . _deselect ;
1153
+ xRef = deselect . xref ;
1154
+ yRef = deselect . yref ;
1155
+
1156
+ searchTraces = determineSearchTraces (
1157
+ gd ,
1158
+ [ getFromId ( gd , xRef , 'x' ) ] ,
1159
+ [ getFromId ( gd , yRef , 'y' ) ] ,
1160
+ xRef + yRef
1161
+ ) ;
1162
+
1163
+ for ( var k = 0 ; k < searchTraces . length ; k ++ ) {
1164
+ var searchInfo = searchTraces [ k ] ;
1165
+ searchInfo . _module . selectPoints ( searchInfo , false ) ;
1166
+ }
1167
+
1168
+ updateSelectedState ( gd , searchTraces ) ;
1169
+
1170
+ if ( sendEvents ) {
1171
+ gd . emit ( 'plotly_deselect' , eventData . points . length ? eventData : null ) ;
1172
+ }
1173
+
1174
+ fullLayout . _deselect = false ;
1145
1175
}
1146
1176
1147
1177
return {
0 commit comments