Skip to content

Commit 8776d49

Browse files
committed
add all the points to new selection points in event data
1 parent 23b812a commit 8776d49

File tree

1 file changed

+25
-2
lines changed

1 file changed

+25
-2
lines changed

src/components/selections/select.js

+25-2
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,10 @@ function prepSelect(evt, startX, startY, dragOptions, mode) {
273273
displayOutlines(convertPoly(mergedPolygons, isOpenMode), outlines, dragOptions);
274274

275275
if(isSelectMode) {
276-
var _res = reselect(gd, selectionTesters, searchTraces, dragOptions);
276+
var _res = reselect(gd);
277+
var extraPoints = _res.eventData ? _res.eventData.points.slice() : [];
278+
279+
_res = reselect(gd, selectionTesters, searchTraces, dragOptions);
277280
selectionTesters = _res.selectionTesters;
278281
eventData = _res.eventData;
279282

@@ -290,7 +293,27 @@ function prepSelect(evt, startX, startY, dragOptions, mode) {
290293
function() {
291294
selection = _doSelect(selectionTesters, searchTraces);
292295

293-
eventData = {points: selection};
296+
var newPoints = selection.slice();
297+
298+
for(var w = 0; w < extraPoints.length; w++) {
299+
var p = extraPoints[w];
300+
var found = false;
301+
for(var u = 0; u < newPoints.length; u++) {
302+
if(
303+
newPoints[u].curveNumber === p.curveNumber &&
304+
newPoints[u].pointNumber === p.pointNumber
305+
) {
306+
found = true;
307+
break;
308+
}
309+
}
310+
if(!found) newPoints.push(p);
311+
}
312+
313+
if(newPoints.length) {
314+
if(!eventData) eventData = {};
315+
eventData.points = newPoints;
316+
}
294317

295318
fillRangeItems(eventData, poly);
296319

0 commit comments

Comments
 (0)