$PLOT->CanvasBind("", [sub { my ($canv,$x,$y)=@_; $x=$canv->canvasx($x); $y=$canv->canvasy($y); $MOVING_IN_PROGRESS=1; $canv->createLine($x,$y,$x,$y,-tag=>'zoombox'); ($xlock2,$ylock2)=($x,$y) }, Ev('x'), Ev('y')]); $PLOT->CanvasBind("", [sub { my ($canv,$x,$y)=@_; if ($MOVING_IN_PROGRESS==1) { $x=$canv->canvasx($x); $y=$canv->canvasy($y); ($x,$y)=(($x-$xzero)/$xscale,-($y-$yzero)/$yscale); ($xlock2,$ylock2)=(($xlock2-$xzero)/$xscale,-($ylock2-$yzero)/$yscale); $XMIN=$XMIN+($x-$xlock2); $XMAX=$XMAX+($x-$xlock2); $YMIN=$YMIN+($y-$ylock2); $YMAX=$YMAX+($y-$ylock2); plot($plot_f_ref,$plot_ref,$data_ref); $MOVING_IN_PROGRESS=0; } }, Ev('x'), Ev('y')]);