@@ -34,6 +34,18 @@ export function mouseMove(chart, event) {
3434 }
3535}
3636
37+ function keyDown ( chart , event ) {
38+ const state = getState ( chart ) ;
39+ if ( ! state . dragStart || event . key !== 'Escape' ) {
40+ return ;
41+ }
42+
43+ removeHandler ( chart , 'keydown' ) ;
44+ state . dragging = false ;
45+ state . dragStart = state . dragEnd = null ;
46+ chart . update ( 'none' ) ;
47+ }
48+
3749function zoomStart ( chart , event , zoomOptions ) {
3850 const { onZoomStart, onZoomRejected} = zoomOptions ;
3951 if ( onZoomStart ) {
@@ -66,6 +78,7 @@ export function mouseDown(chart, event) {
6678 state . dragStart = event ;
6779
6880 addHandler ( chart , chart . canvas , 'mousemove' , mouseMove ) ;
81+ addHandler ( chart , window . document , 'keydown' , keyDown ) ;
6982}
7083
7184export function computeDragRect ( chart , mode , beginPoint , endPoint ) {
@@ -201,6 +214,7 @@ export function addListeners(chart, options) {
201214 removeHandler ( chart , 'mousedown' ) ;
202215 removeHandler ( chart , 'mousemove' ) ;
203216 removeHandler ( chart , 'mouseup' ) ;
217+ removeHandler ( chart , 'keydown' ) ;
204218 }
205219}
206220
@@ -210,4 +224,5 @@ export function removeListeners(chart) {
210224 removeHandler ( chart , 'mouseup' ) ;
211225 removeHandler ( chart , 'wheel' ) ;
212226 removeHandler ( chart , 'click' ) ;
227+ removeHandler ( chart , 'keydown' ) ;
213228}
0 commit comments