11
11
using System ;
12
12
using System . Collections . Generic ;
13
13
using System . Linq ;
14
+ using Windows . Storage ;
14
15
using static Files . App . Constants ;
15
16
using static Files . App . Helpers . PathNormalization ;
16
17
@@ -59,9 +60,10 @@ private void ColumnViewBase_ItemInvoked(object? sender, EventArgs e)
59
60
return ;
60
61
61
62
var nextBladeIndex = ColumnHost . ActiveBlades . IndexOf ( column . ListView . FindAscendant < BladeItem > ( ) ) + 1 ;
63
+ var nextBlade = ColumnHost . ActiveBlades . ElementAtOrDefault ( nextBladeIndex ) ;
64
+ var arePathsDifferent = ( ( nextBlade ? . Content as Frame ) ? . Content as IShellPage ) ? . FilesystemViewModel ? . WorkingDirectory != column . NavPathParam ;
62
65
63
- if ( ColumnHost . ActiveBlades . ElementAtOrDefault ( nextBladeIndex ) is not BladeItem nextBlade ||
64
- ( ( nextBlade . Content as Frame ) ? . Content as IShellPage ) ? . FilesystemViewModel ? . WorkingDirectory != column . NavPathParam )
66
+ if ( nextBlade is null || arePathsDifferent )
65
67
{
66
68
DismissOtherBlades ( column . ListView ) ;
67
69
@@ -75,7 +77,8 @@ private void ColumnViewBase_ItemInvoked(object? sender, EventArgs e)
75
77
navigationArguments . NavPathParam = column . NavPathParam ;
76
78
ParentShellPageInstance . TabItemArguments . NavigationArg = column . NavPathParam ;
77
79
}
78
- else if ( UserSettingsService . FoldersSettingsService . ColumnLayoutOpenFoldersWithOneClick )
80
+ else if ( UserSettingsService . FoldersSettingsService . ColumnLayoutOpenFoldersWithOneClick &&
81
+ arePathsDifferent )
79
82
{
80
83
CloseUnnecessaryColumns ( column ) ;
81
84
}
@@ -268,7 +271,9 @@ private void ColumnViewBrowser_ContentChanged(object sender, UserControls.Multit
268
271
269
272
private void ColumnViewBase_KeyUp ( object sender , Microsoft . UI . Xaml . Input . KeyRoutedEventArgs e )
270
273
{
271
- CloseUnnecessaryColumns ( ( ActiveColumnShellPage as ColumnShellPage ) ? . ColumnParams ) ;
274
+ var shPage = ActiveColumnShellPage as ColumnShellPage ;
275
+ if ( shPage ? . SlimContentPage ? . SelectedItem ? . PrimaryItemAttribute is not StorageItemTypes . Folder )
276
+ CloseUnnecessaryColumns ( shPage ? . ColumnParams ) ;
272
277
}
273
278
274
279
public void NavigateBack ( )
@@ -436,7 +441,7 @@ private void ColumnViewBase_ItemTapped(object? sender, EventArgs e)
436
441
437
442
private void CloseUnnecessaryColumns ( ColumnParam column )
438
443
{
439
- var columnPath = ( ( ColumnHost . ActiveBlades . Last ( ) . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel . WorkingDirectory ;
444
+ var columnPath = ( ( ColumnHost . ActiveBlades . Last ( ) . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel ? . WorkingDirectory ;
440
445
var columnFirstPath = ( ( ColumnHost . ActiveBlades . First ( ) . Content as Frame ) ? . Content as ColumnShellPage ) ? . FilesystemViewModel . WorkingDirectory ;
441
446
if ( string . IsNullOrEmpty ( columnPath ) || string . IsNullOrEmpty ( columnFirstPath ) )
442
447
return ;
0 commit comments