@@ -252,6 +252,9 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {
252252 zb ,
253253 corners ;
254254
255+ // zoom takes over minDrag, so it also has to take over gd._dragged
256+ var zoomDragged ;
257+
255258 // collected changes to be made to the plot by relayout at the end
256259 var updates = { } ;
257260
@@ -266,6 +269,7 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {
266269 path0 = 'M0,0H' + pw + 'V' + ph + 'H0V0' ;
267270 dimmed = false ;
268271 zoomMode = 'xy' ;
272+ zoomDragged = false ;
269273
270274 zb = makeZoombox ( zoomlayer , lum , xs , ys , path0 ) ;
271275
@@ -341,6 +345,9 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {
341345 box . w = box . r - box . l ;
342346 box . h = box . b - box . t ;
343347
348+ if ( zoomMode ) zoomDragged = true ;
349+ gd . _dragged = zoomDragged ;
350+
344351 updateZoombox ( zb , corners , box , path0 , dimmed , lum ) ;
345352 dimmed = true ;
346353 }
@@ -458,12 +465,7 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {
458465 // no more scrolling is coming
459466 redrawTimer = setTimeout ( function ( ) {
460467 scrollViewBox = [ 0 , 0 , pw , ph ] ;
461-
462- var zoomMode ;
463- if ( isSubplotConstrained ) zoomMode = 'xy' ;
464- else zoomMode = ( ew ? 'x' : '' ) + ( ns ? 'y' : '' ) ;
465-
466- dragTail ( zoomMode ) ;
468+ dragTail ( ) ;
467469 } , REDRAWDELAY ) ;
468470
469471 e . preventDefault ( ) ;
0 commit comments