@@ -13,13 +13,16 @@ class ViewportController extends Controller {
1313 * @member {String[]} connectedApps=[]
1414 */
1515 connectedApps = [ ]
16-
16+ /**
17+ * @member {Boolean} #isReintegrating=false
18+ * @private
19+ */
20+ #isReintegrating = false
1721 /**
1822 * @member {Boolean} #isWindowDragging=false
1923 * @private
2024 */
2125 #isWindowDragging = false
22-
2326 /**
2427 * @member {Object} widgetIndexMap
2528 */
@@ -58,7 +61,7 @@ class ViewportController extends Controller {
5861 url = await Neo . Main . getByPath ( { path : 'document.URL' , windowId} ) ,
5962 widgetName = new URL ( url ) . searchParams . get ( 'name' ) ,
6063 widget = me . getReference ( widgetName ) ,
61- parent = widget . up ( 'panel' ) ;
64+ parent = widget ? .up ( 'panel' ) ;
6265
6366 if ( ! me . #isWindowDragging) {
6467 parent . hide ( )
@@ -67,7 +70,7 @@ class ViewportController extends Controller {
6770 me . connectedApps . push ( widgetName ) ;
6871
6972 // Add the widget to the popup window
70- mainView . add ( widget )
73+ mainView . add ( widget , false , ! me . #isWindowDragging )
7174 }
7275 }
7376
@@ -79,7 +82,7 @@ class ViewportController extends Controller {
7982 async onWindowDisconnect ( data ) {
8083 let me = this ;
8184
82- if ( me . #isWindowDragging) {
85+ if ( me . #isWindowDragging || me . #isReintegrating ) {
8386 me . #isWindowDragging = false ;
8487 return
8588 }
@@ -109,19 +112,19 @@ class ViewportController extends Controller {
109112 { windowId} = me ,
110113 { sortZone} = data ,
111114 widgetName = data . draggedItem . reference . replace ( '-panel' , '' ) ,
112- widget = me . getReference ( widgetName ) ,
113- dashboard = me . getReference ( 'dashboard' ) ,
114- itemPanel = dashboard . items [ me . widgetIndexMap [ widgetName ] ] ,
115- bodyContainer = itemPanel . getReference ( 'bodyContainer' ) ;
115+ widget = me . getReference ( widgetName ) ;
116116
117- await Neo . Main . windowClose ( { names : widgetName , windowId } ) ;
117+ me . #isReintegrating = true ;
118118
119- bodyContainer . add ( widget ) ;
119+ sortZone . dragProxy . add ( widget , true ) ;
120+
121+ await Neo . Main . windowClose ( { names : widgetName , windowId} ) ;
120122
123+ me . #isReintegrating = false ;
121124 me . #isWindowDragging = false ;
122125
123126 sortZone . isWindowDragging = false ;
124- sortZone . dragProxy . hidden = false ;
127+ sortZone . dragProxy . style = { opacity : 1 } ;
125128
126129 Neo . main . addon . DragDrop . setConfigs ( { isWindowDragging : false , windowId} )
127130 }
0 commit comments