@@ -106,7 +106,7 @@ const CODE_SNIPPET_CREATE_NEW_BTN = 'jp-createSnippetBtn';
106106/**
107107 * The threshold in pixels to start a drag event.
108108 */
109- const DRAG_THRESHOLD = 5 ;
109+ const DRAG_THRESHOLD = 3 ;
110110
111111/**
112112 * A class used to indicate a snippet item.
@@ -431,6 +431,9 @@ export class CodeSnippetDisplay extends React.Component<
431431 target . addEventListener ( 'mouseup' , this . _evtMouseUp , true ) ;
432432 target . addEventListener ( 'mousemove' , this . handleDragMove , true ) ;
433433
434+ // since a browser has its own drag'n'drop support for images and some other elements.
435+ target . ondragstart = ( ) => false ;
436+
434437 event . preventDefault ( ) ;
435438 }
436439
@@ -446,6 +449,9 @@ export class CodeSnippetDisplay extends React.Component<
446449 }
447450
448451 private handleDragMove ( event : MouseEvent ) : void {
452+ event . preventDefault ( ) ;
453+ event . stopPropagation ( ) ;
454+
449455 const data = this . _dragData ;
450456
451457 if (
@@ -460,7 +466,12 @@ export class CodeSnippetDisplay extends React.Component<
460466 const idx = ( event . target as HTMLElement ) . id ;
461467 const codeSnippet = this . state . codeSnippets [ parseInt ( idx ) ] ;
462468
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+ ) ;
464475 }
465476 }
466477
@@ -481,7 +492,7 @@ export class CodeSnippetDisplay extends React.Component<
481492 ) : boolean {
482493 const dx = Math . abs ( nextX - prevX ) ;
483494 const dy = Math . abs ( nextY - prevY ) ;
484- return dx >= DRAG_THRESHOLD || dy >= DRAG_THRESHOLD ;
495+ return dx >= 0 || dy >= DRAG_THRESHOLD ;
485496 }
486497
487498 private async startDrag (
0 commit comments