@@ -7,11 +7,11 @@ import 'vs/css!./media/tree';
77import { IDisposable , dispose , Disposable , toDisposable } from 'vs/base/common/lifecycle' ;
88import { IListOptions , List , IListStyles , mightProducePrintableCharacter , MouseController } from 'vs/base/browser/ui/list/listWidget' ;
99import { IListVirtualDelegate , IListRenderer , IListMouseEvent , IListEvent , IListContextMenuEvent , IListDragAndDrop , IListDragOverReaction , IKeyboardNavigationLabelProvider , IIdentityProvider } from 'vs/base/browser/ui/list/list' ;
10- import { append , $ , toggleClass , getDomNodePagePosition , removeClass , addClass , hasClass } from 'vs/base/browser/dom' ;
10+ import { append , $ , toggleClass , getDomNodePagePosition , removeClass , addClass , hasClass , hasParentWithClass } from 'vs/base/browser/dom' ;
1111import { Event , Relay , Emitter , EventBufferer } from 'vs/base/common/event' ;
1212import { StandardKeyboardEvent , IKeyboardEvent } from 'vs/base/browser/keyboardEvent' ;
1313import { KeyCode } from 'vs/base/common/keyCodes' ;
14- import { ITreeModel , ITreeNode , ITreeRenderer , ITreeEvent , ITreeMouseEvent , ITreeContextMenuEvent , ITreeFilter , ITreeNavigator , ICollapseStateChangeEvent , ITreeDragAndDrop , TreeDragOverBubble , TreeVisibility , TreeFilterResult , ITreeModelSpliceEvent } from 'vs/base/browser/ui/tree/tree' ;
14+ import { ITreeModel , ITreeNode , ITreeRenderer , ITreeEvent , ITreeMouseEvent , ITreeContextMenuEvent , ITreeFilter , ITreeNavigator , ICollapseStateChangeEvent , ITreeDragAndDrop , TreeDragOverBubble , TreeVisibility , TreeFilterResult , ITreeModelSpliceEvent , TreeMouseEventTarget } from 'vs/base/browser/ui/tree/tree' ;
1515import { ISpliceable } from 'vs/base/common/sequence' ;
1616import { IDragAndDropData , StaticDND , DragAndDropData } from 'vs/base/browser/dnd' ;
1717import { range , equals , distinctES6 } from 'vs/base/common/arrays' ;
@@ -722,9 +722,18 @@ function asTreeEvent<T>(event: IListEvent<ITreeNode<T, any>>): ITreeEvent<T> {
722722}
723723
724724function asTreeMouseEvent < T > ( event : IListMouseEvent < ITreeNode < T , any > > ) : ITreeMouseEvent < T > {
725+ let target : TreeMouseEventTarget = TreeMouseEventTarget . Unknown ;
726+
727+ if ( hasParentWithClass ( event . browserEvent . target as HTMLElement , 'monaco-tl-twistie' , 'monaco-tl-row' ) ) {
728+ target = TreeMouseEventTarget . Twistie ;
729+ } else if ( hasParentWithClass ( event . browserEvent . target as HTMLElement , 'monaco-tl-contents' , 'monaco-tl-row' ) ) {
730+ target = TreeMouseEventTarget . Element ;
731+ }
732+
725733 return {
726734 browserEvent : event . browserEvent ,
727- element : event . element ? event . element . element : null
735+ element : event . element ? event . element . element : null ,
736+ target
728737 } ;
729738}
730739
0 commit comments