Переглянути джерело

Add a class for native drop events in file listing

Steven Silvester 7 роки тому
батько
коміт
3e549922a9
1 змінених файлів з 10 додано та 0 видалено
  1. 10 0
      packages/filebrowser/src/listing.ts

+ 10 - 0
packages/filebrowser/src/listing.ts

@@ -611,9 +611,15 @@ class DirListing extends Widget {
       break;
     case 'dragenter':
     case 'dragover':
+      this.addClass('jp-mod-native-drop');
       event.preventDefault();
       break;
+    case 'dragleave':
+    case 'dragend':
+      this.removeClass('jp-mod-native-drop');
+      break;
     case 'drop':
+      this.removeClass('jp-mod-native-drop');
       this._evtNativeDrop(event as DragEvent);
       break;
     case 'scroll':
@@ -649,6 +655,8 @@ class DirListing extends Widget {
     node.addEventListener('dblclick', this);
     content.addEventListener('dragenter', this);
     content.addEventListener('dragover', this);
+    content.addEventListener('dragleave', this);
+    content.addEventListener('dragend', this);
     content.addEventListener('drop', this);
     content.addEventListener('scroll', this);
     content.addEventListener('p-dragenter', this);
@@ -671,6 +679,8 @@ class DirListing extends Widget {
     content.removeEventListener('scroll', this);
     content.removeEventListener('dragover', this);
     content.removeEventListener('dragover', this);
+    content.removeEventListener('dragleave', this);
+    content.removeEventListener('dragend', this);
     content.removeEventListener('drop', this);
     content.removeEventListener('p-dragenter', this);
     content.removeEventListener('p-dragleave', this);