Skip to content

Commit f0110ee

Browse files
committed
fx: make mainDrag active if 'lasso' / 'select' even w/ fixed ranges
1 parent 57d6980 commit f0110ee

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/plots/cartesian/dragbox.js

+11-2
Original file line numberDiff line numberDiff line change
@@ -76,19 +76,22 @@ module.exports = function dragBox(gd, plotinfo, x, y, w, h, ns, ew) {
7676
dragClass = ns + ew + 'drag';
7777

7878
var dragger3 = plotinfo.draglayer.selectAll('.' + dragClass).data([0]);
79+
7980
dragger3.enter().append('rect')
8081
.classed('drag', true)
8182
.classed(dragClass, true)
8283
.style({fill: 'transparent', 'stroke-width': 0})
8384
.attr('data-subplot', plotinfo.id);
85+
8486
dragger3.call(Drawing.setRect, x, y, w, h)
8587
.call(setCursor, cursor);
88+
8689
var dragger = dragger3.node();
8790

8891
// still need to make the element if the axes are disabled
8992
// but nuke its events (except for maindrag which needs them for hover)
9093
// and stop there
91-
if(!yActive && !xActive) {
94+
if(!yActive && !xActive && !isSelectOrLasso(fullLayout.dragmode)) {
9295
dragger.onmousedown = null;
9396
dragger.style.pointerEvents = isMainDrag ? 'all' : 'none';
9497
return dragger;
@@ -133,7 +136,7 @@ module.exports = function dragBox(gd, plotinfo, x, y, w, h, ns, ew) {
133136
dragOptions.doneFn = dragDone;
134137
clearSelect();
135138
}
136-
else if(dragModeNow === 'select' || dragModeNow === 'lasso') {
139+
else if(isSelectOrLasso(dragModeNow)) {
137140
prepSelect(e, startX, startY, dragOptions, dragModeNow);
138141
}
139142
}
@@ -670,3 +673,9 @@ function removeZoombox(gd) {
670673
.selectAll('.zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners')
671674
.remove();
672675
}
676+
677+
function isSelectOrLasso(dragmode) {
678+
var modes = ['lasso', 'select'];
679+
680+
return modes.indexOf(dragmode) !== -1;
681+
}

0 commit comments

Comments
 (0)