@@ -79,19 +79,23 @@ function initListeners() {
7979 return ;
8080 }
8181 dropZone .value .addEventListener (" dragenter" , onDragEnter );
82+ dropZone .value .addEventListener (" dragenter" , onDragOver );
83+ dropZone .value .addEventListener (" dragover" , onDragOver );
8284 dropZone .value .addEventListener (" dragleave" , onDragLeave );
8385 dropZone .value .addEventListener (" drop" , onDrop );
84- dropZone . value .addEventListener (" dragover " , onDragOver );
86+ document . body .addEventListener (" dragenter " , onDragOverNonDropZone );
8587 document .body .addEventListener (" dragover" , onDragOverNonDropZone );
8688}
8789function removeListeners() {
8890 if (! dropZone .value ) {
8991 return ;
9092 }
9193 dropZone .value .removeEventListener (" dragenter" , onDragEnter );
94+ dropZone .value .removeEventListener (" dragenter" , onDragOver );
95+ dropZone .value .removeEventListener (" dragover" , onDragOver );
9296 dropZone .value .removeEventListener (" dragleave" , onDragLeave );
9397 dropZone .value .removeEventListener (" drop" , onDrop );
94- dropZone . value .removeEventListener (" dragover " , onDragOver );
98+ document . body .removeEventListener (" dragenter " , onDragOverNonDropZone );
9599 document .body .removeEventListener (" dragover" , onDragOverNonDropZone );
96100}
97101
@@ -113,6 +117,9 @@ function onDragOver(event: DragEvent) {
113117}
114118function onDragEnter(event : DragEvent ) {
115119 stopEvent (event );
120+ if (event .relatedTarget !== null ) {
121+ return ;
122+ }
116123 if (! dropHover .value ) {
117124 dropHover .value = true ;
118125 } else {
@@ -122,10 +129,11 @@ function onDragEnter(event: DragEvent) {
122129}
123130function onDragLeave(event : DragEvent ) {
124131 stopEvent (event );
125- if (! dropZone .value ?.contains (event .relatedTarget as Node )) {
126- dropHover .value = false ;
127- resetDataTransferHover ();
132+ if (event .relatedTarget !== null ) {
133+ return ;
128134 }
135+ dropHover .value = false ;
136+ resetDataTransferHover ();
129137}
130138
131139function onDragOverNonDropZone(event : DragEvent ) {
0 commit comments