@@ -94,7 +94,7 @@ export class DDDroppable extends DDBaseImplement implements HTMLElementExtendOpt
9494
9595 // make sure when we enter this, that the last one gets a leave FIRST to correctly cleanup as we don't always do
9696 if ( DDManager . dropElement && DDManager . dropElement !== this ) {
97- DDManager . dropElement . _mouseLeave ( e as DragEvent , true ) ;
97+ DDManager . dropElement . _mouseLeave ( e as DragEvent , true ) ; // calledByEnter = true
9898 }
9999 DDManager . dropElement = this ;
100100
@@ -108,7 +108,7 @@ export class DDDroppable extends DDBaseImplement implements HTMLElementExtendOpt
108108 }
109109
110110 /** @internal called when the item is leaving our area, stop tracking if we had moving item */
111- protected _mouseLeave ( e : MouseEvent , external = false ) : void {
111+ protected _mouseLeave ( e : MouseEvent , calledByEnter = false ) : void {
112112 // console.log(`${count++} Leave ${this.el.id || (this.el as GridHTMLElement).gridstack.opts.id}`); // TEST
113113 if ( ! DDManager . dragElement || DDManager . dropElement !== this ) return ;
114114 e . preventDefault ( ) ;
@@ -120,19 +120,21 @@ export class DDDroppable extends DDBaseImplement implements HTMLElementExtendOpt
120120 }
121121 this . triggerEvent ( 'dropout' , ev ) ;
122122
123- if ( ! external && DDManager . dropElement === this ) {
123+ if ( DDManager . dropElement === this ) {
124124 delete DDManager . dropElement ;
125125 // console.log('not tracking'); // TEST
126126
127127 // if we're still over a parent droppable, send it an enter as we don't get one from leaving nested children
128- let parentDrop : DDDroppable ;
129- let parent : DDElementHost = this . el . parentElement ;
130- while ( ! parentDrop && parent ) {
131- parentDrop = parent . ddElement ?. ddDroppable ;
132- parent = parent . parentElement ;
133- }
134- if ( parentDrop ) {
135- parentDrop . _mouseEnter ( e ) ;
128+ if ( ! calledByEnter ) {
129+ let parentDrop : DDDroppable ;
130+ let parent : DDElementHost = this . el . parentElement ;
131+ while ( ! parentDrop && parent ) {
132+ parentDrop = parent . ddElement ?. ddDroppable ;
133+ parent = parent . parentElement ;
134+ }
135+ if ( parentDrop ) {
136+ parentDrop . _mouseEnter ( e ) ;
137+ }
136138 }
137139 }
138140 }
0 commit comments