6
6
MutableDisposable ,
7
7
} from '../lifecycle' ;
8
8
import { LayoutPriority , Orientation , Sizing } from '../splitview/splitview' ;
9
- import { PaneviewComponentOptions } from './options' ;
9
+ import { PaneviewComponentOptions , PaneviewDndOverlayEvent } from './options' ;
10
10
import { Paneview } from './paneview' ;
11
11
import { IPanePart , PaneviewPanel , IPaneviewPanel } from './paneviewPanel' ;
12
12
import {
@@ -22,12 +22,6 @@ import { Classnames } from '../dom';
22
22
23
23
const nextLayoutId = sequentialNumberGenerator ( ) ;
24
24
25
- export interface PaneviewDndOverlayEvent {
26
- nativeEvent : DragEvent ;
27
- panel : IPaneviewPanel ;
28
- getData : ( ) => PaneTransfer | undefined ;
29
- }
30
-
31
25
export interface SerializedPaneviewPanel {
32
26
snap ?: boolean ;
33
27
priority ?: LayoutPriority ;
@@ -109,6 +103,7 @@ export interface IPaneviewComponent extends IDisposable {
109
103
readonly onDidDrop : Event < PaneviewDropEvent > ;
110
104
readonly onDidLayoutChange : Event < void > ;
111
105
readonly onDidLayoutFromJSON : Event < void > ;
106
+ readonly onUnhandledDragOverEvent : Event < PaneviewDndOverlayEvent > ;
112
107
addPanel < T extends object = Parameters > (
113
108
options : AddPaneviewComponentOptions < T >
114
109
) : IPaneviewPanel ;
@@ -146,6 +141,11 @@ export class PaneviewComponent extends Resizable implements IPaneviewComponent {
146
141
private readonly _onDidRemoveView = new Emitter < PaneviewPanel > ( ) ;
147
142
readonly onDidRemoveView = this . _onDidRemoveView . event ;
148
143
144
+ private readonly _onUnhandledDragOverEvent =
145
+ new Emitter < PaneviewDndOverlayEvent > ( ) ;
146
+ readonly onUnhandledDragOverEvent : Event < PaneviewDndOverlayEvent > =
147
+ this . _onUnhandledDragOverEvent . event ;
148
+
149
149
private readonly _classNames : Classnames ;
150
150
151
151
get id ( ) : string {
@@ -204,7 +204,8 @@ export class PaneviewComponent extends Resizable implements IPaneviewComponent {
204
204
this . _onDidLayoutfromJSON ,
205
205
this . _onDidDrop ,
206
206
this . _onDidAddView ,
207
- this . _onDidRemoveView
207
+ this . _onDidRemoveView ,
208
+ this . _onUnhandledDragOverEvent
208
209
) ;
209
210
210
211
this . _classNames = new Classnames ( this . element ) ;
@@ -442,9 +443,14 @@ export class PaneviewComponent extends Resizable implements IPaneviewComponent {
442
443
}
443
444
444
445
private doAddPanel ( panel : PaneFramework ) : void {
445
- const disposable = panel . onDidDrop ( ( event ) => {
446
- this . _onDidDrop . fire ( event ) ;
447
- } ) ;
446
+ const disposable = new CompositeDisposable (
447
+ panel . onDidDrop ( ( event ) => {
448
+ this . _onDidDrop . fire ( event ) ;
449
+ } ) ,
450
+ panel . onUnhandledDragOverEvent ( ( event ) => {
451
+ this . _onUnhandledDragOverEvent . fire ( event ) ;
452
+ } )
453
+ ) ;
448
454
449
455
this . _viewDisposables . set ( panel . id , disposable ) ;
450
456
}
0 commit comments