@@ -58,6 +58,12 @@ export class CompressedTreeWidget extends TreeViewWelcomeWidget {
5858 }
5959 }
6060
61+ protected override shouldRenderIndent ( node : TreeNode ) : boolean {
62+ return ! this . compressionToggle . compress
63+ || ! this . compressionService . isCompressionParticipant ( node )
64+ || this . compressionService . getCompressionHead ( node ) === node ;
65+ }
66+
6167 protected override shouldDisplayNode ( node : TreeNode ) : boolean {
6268 if ( this . compressionToggle . compress && this . compressionService . isCompressionParticipant ( node ) && ! this . compressionService . isCompressionHead ( node ) ) {
6369 return false ;
@@ -66,14 +72,18 @@ export class CompressedTreeWidget extends TreeViewWelcomeWidget {
6672 }
6773
6874 protected override getDepthForNode ( node : TreeNode , depths : Map < CompositeTreeNode | undefined , number > ) : number {
69- if ( ! this . compressionToggle . compress ) { return super . getDepthForNode ( node , depths ) ; }
75+ if ( ! this . compressionToggle . compress ) {
76+ return super . getDepthForNode ( node , depths ) ;
77+ }
7078 const parent = this . compressionService . getCompressionHead ( node . parent ) ?? node . parent ;
7179 const parentDepth = depths . get ( parent ) ;
7280 return parentDepth === undefined ? 0 : TreeNode . isVisible ( node . parent ) ? parentDepth + 1 : parentDepth ;
7381 }
7482
7583 protected override toNodeRow ( node : TreeNode , index : number , depth : number ) : CompressedNodeRow {
76- if ( ! this . compressionToggle . compress ) { return super . toNodeRow ( node , index , depth ) ; }
84+ if ( ! this . compressionToggle . compress ) {
85+ return super . toNodeRow ( node , index , depth ) ;
86+ }
7787 const row : CompressedNodeRow = { node, index, depth } ;
7888 if ( this . compressionService . isCompressionHead ( node ) ) {
7989 row . compressionChain = this . compressionService . getCompressionChain ( node ) ;
@@ -102,7 +112,9 @@ export class CompressedTreeWidget extends TreeViewWelcomeWidget {
102112 }
103113
104114 protected override getCaptionChildren ( node : TreeNode , props : CompressedNodeProps ) : React . ReactNode {
105- if ( ! this . compressionToggle . compress || ! props . compressionChain ) { return super . getCaptionChildren ( node , props ) ; }
115+ if ( ! this . compressionToggle . compress || ! props . compressionChain ) {
116+ return super . getCaptionChildren ( node , props ) ;
117+ }
106118 return props . compressionChain . map ( ( subNode , index , self ) => {
107119 const classes = [ 'theia-tree-compressed-label-part' ] ;
108120 if ( SelectableTreeNode . isSelected ( subNode ) ) {
@@ -129,21 +141,27 @@ export class CompressedTreeWidget extends TreeViewWelcomeWidget {
129141 }
130142
131143 protected override handleUp ( event : KeyboardEvent ) : void {
132- if ( ! this . compressionToggle . compress ) { return super . handleUp ( event ) ; }
144+ if ( ! this . compressionToggle . compress ) {
145+ return super . handleUp ( event ) ;
146+ }
133147 const type = this . props . multiSelect && this . hasShiftMask ( event ) ? TreeSelection . SelectionType . RANGE : undefined ;
134148 this . model . selectPrevRow ( type ) ;
135149 this . node . focus ( ) ;
136150 }
137151
138152 protected override handleDown ( event : KeyboardEvent ) : void {
139- if ( ! this . compressionToggle . compress ) { return super . handleDown ( event ) ; }
153+ if ( ! this . compressionToggle . compress ) {
154+ return super . handleDown ( event ) ;
155+ }
140156 const type = this . props . multiSelect && this . hasShiftMask ( event ) ? TreeSelection . SelectionType . RANGE : undefined ;
141157 this . model . selectNextRow ( type ) ;
142158 this . node . focus ( ) ;
143159 }
144160
145161 protected override async handleLeft ( event : KeyboardEvent ) : Promise < void > {
146- if ( ! this . compressionToggle . compress ) { return super . handleLeft ( event ) ; }
162+ if ( ! this . compressionToggle . compress ) {
163+ return super . handleLeft ( event ) ;
164+ }
147165 if ( Boolean ( this . props . multiSelect ) && ( this . hasCtrlCmdMask ( event ) || this . hasShiftMask ( event ) ) ) {
148166 return ;
149167 }
@@ -160,7 +178,9 @@ export class CompressedTreeWidget extends TreeViewWelcomeWidget {
160178 }
161179
162180 protected override async handleRight ( event : KeyboardEvent ) : Promise < void > {
163- if ( ! this . compressionToggle . compress ) { return super . handleRight ( event ) ; }
181+ if ( ! this . compressionToggle . compress ) {
182+ return super . handleRight ( event ) ;
183+ }
164184 if ( Boolean ( this . props . multiSelect ) && ( this . hasCtrlCmdMask ( event ) || this . hasShiftMask ( event ) ) ) {
165185 return ;
166186 }
0 commit comments