@@ -106,7 +106,7 @@ const CODE_SNIPPET_CREATE_NEW_BTN = 'jp-createSnippetBtn';
106
106
/**
107
107
* The threshold in pixels to start a drag event.
108
108
*/
109
- const DRAG_THRESHOLD = 5 ;
109
+ const DRAG_THRESHOLD = 3 ;
110
110
111
111
/**
112
112
* A class used to indicate a snippet item.
@@ -431,6 +431,9 @@ export class CodeSnippetDisplay extends React.Component<
431
431
target . addEventListener ( 'mouseup' , this . _evtMouseUp , true ) ;
432
432
target . addEventListener ( 'mousemove' , this . handleDragMove , true ) ;
433
433
434
+ // since a browser has its own drag'n'drop support for images and some other elements.
435
+ target . ondragstart = ( ) => false ;
436
+
434
437
event . preventDefault ( ) ;
435
438
}
436
439
@@ -446,6 +449,9 @@ export class CodeSnippetDisplay extends React.Component<
446
449
}
447
450
448
451
private handleDragMove ( event : MouseEvent ) : void {
452
+ event . preventDefault ( ) ;
453
+ event . stopPropagation ( ) ;
454
+
449
455
const data = this . _dragData ;
450
456
451
457
if (
@@ -460,7 +466,12 @@ export class CodeSnippetDisplay extends React.Component<
460
466
const idx = ( event . target as HTMLElement ) . id ;
461
467
const codeSnippet = this . state . codeSnippets [ parseInt ( idx ) ] ;
462
468
463
- this . startDrag ( data . dragImage , codeSnippet , event . clientX , event . clientY ) ;
469
+ void this . startDrag (
470
+ data . dragImage ,
471
+ codeSnippet ,
472
+ event . clientX ,
473
+ event . clientY
474
+ ) ;
464
475
}
465
476
}
466
477
@@ -481,7 +492,7 @@ export class CodeSnippetDisplay extends React.Component<
481
492
) : boolean {
482
493
const dx = Math . abs ( nextX - prevX ) ;
483
494
const dy = Math . abs ( nextY - prevY ) ;
484
- return dx >= DRAG_THRESHOLD || dy >= DRAG_THRESHOLD ;
495
+ return dx >= 0 || dy >= DRAG_THRESHOLD ;
485
496
}
486
497
487
498
private async startDrag (
0 commit comments