Skip to content

Commit 16a8213

Browse files
committed
limit corner draggers considering rangemin or rangemax
1 parent ab9d1cc commit 16a8213

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

src/plots/cartesian/dragbox.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {
565565
if(xActive === 'ew' || yActive === 'ns') {
566566
var spDx = xActive ? -dx : 0;
567567
var spDy = yActive ? -dy : 0;
568+
568569
if(matches.isSubplotConstrained) {
569570
if(xActive && yActive) {
570571
var frac = (dx / pw - dy / ph) / 2;
@@ -922,6 +923,14 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {
922923
clipDx = scaleAndGetShift(xa, xScaleFactor2);
923924
}
924925

926+
if(xScaleFactor2 > 1 && (
927+
(xa.rangemax !== undefined && editX === (xa.range[0] < xa.range[1] ? 'e' : 'w')) ||
928+
(xa.rangemin !== undefined && editX === (xa.range[0] < xa.range[1] ? 'w' : 'e'))
929+
)) {
930+
xScaleFactor2 = 1;
931+
clipDx = 0;
932+
}
933+
925934
if(editY2) {
926935
yScaleFactor2 = yScaleFactor;
927936
clipDy = ns || matches.isSubplotConstrained ? viewBox[1] : getShift(ya, yScaleFactor2);
@@ -938,6 +947,14 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {
938947
clipDy = scaleAndGetShift(ya, yScaleFactor2);
939948
}
940949

950+
if(yScaleFactor2 > 1 && (
951+
(ya.rangemax !== undefined && editY === (ya.range[0] < ya.range[1] ? 'n' : 's')) ||
952+
(ya.rangemin !== undefined && editY === (ya.range[0] < ya.range[1] ? 's' : 'n'))
953+
)) {
954+
yScaleFactor2 = 1;
955+
clipDy = 0;
956+
}
957+
941958
// don't scale at all if neither axis is scalable here
942959
if(!xScaleFactor2 && !yScaleFactor2) {
943960
continue;

0 commit comments

Comments
 (0)