@@ -21,6 +21,10 @@ class ViewportController extends Controller {
2121 * @member {Number|null} intervalId
2222 */
2323 intervalId = null
24+ /**
25+ * @member {Boolean} #isWindowDragging=false
26+ */
27+ #isWindowDragging = false
2428 /**
2529 * @member {Object} widgetIndexMap
2630 */
@@ -93,8 +97,14 @@ class ViewportController extends Controller {
9397 * @param {Number } data.windowId
9498 */
9599 async onAppDisconnect ( data ) {
96- let me = this ,
97- { appName, windowId} = data ,
100+ let me = this ;
101+
102+ if ( me . #isWindowDragging) {
103+ me . #isWindowDragging = false ;
104+ return
105+ }
106+
107+ let { appName, windowId} = data ,
98108 url = await Neo . Main . getByPath ( { path : 'document.URL' , windowId} ) ,
99109 widgetName = new URL ( url ) . searchParams . get ( 'name' ) ,
100110 widget = me . getReference ( widgetName ) ;
@@ -111,25 +121,6 @@ class ViewportController extends Controller {
111121 }
112122 }
113123
114- /**
115- * @param {Object } data
116- */
117- async onDragBoundaryExit ( data ) {
118- let { draggedItem, proxyRect, sortZone} = data ,
119- widgetName = draggedItem . reference . replace ( '-panel' , '' ) ,
120- popupData ;
121-
122- // Prohibit the size reduction inside #openWidgetInPopup().
123- proxyRect . height += 50 ;
124-
125- popupData = await this . #openWidgetInPopup( widgetName , proxyRect ) ;
126-
127- sortZone . startWindowDrag ( {
128- dragData : data ,
129- ...popupData
130- } ) ;
131- }
132-
133124 /**
134125 * @param {Object } data
135126 */
@@ -202,6 +193,34 @@ class ViewportController extends Controller {
202193 await this . createBrowserWindow ( 'pie-chart' )
203194 }
204195
196+ /**
197+ * @param {Object } data
198+ */
199+ onDragBoundaryEntry ( data ) {
200+ console . log ( 'onDragBoundaryEntry' , data )
201+ }
202+
203+ /**
204+ * @param {Object } data
205+ */
206+ async onDragBoundaryExit ( data ) {
207+ let { draggedItem, proxyRect, sortZone} = data ,
208+ widgetName = draggedItem . reference . replace ( '-panel' , '' ) ,
209+ popupData ;
210+
211+ this . #isWindowDragging = true ;
212+
213+ // Prohibit the size reduction inside #openWidgetInPopup().
214+ proxyRect . height += 50 ;
215+
216+ popupData = await this . #openWidgetInPopup( widgetName , proxyRect ) ;
217+
218+ sortZone . startWindowDrag ( {
219+ dragData : data ,
220+ ...popupData
221+ } ) ;
222+ }
223+
205224 /**
206225 * @param {Object } data
207226 */
0 commit comments