Skip to content

Commit 17a3d30

Browse files
authored
Fix: Fixed issue with selecting multiple items in column layout (#12515)
1 parent cc9d48d commit 17a3d30

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/Files.App/Views/LayoutModes/ColumnViewBase.xaml.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,13 @@ protected override void FileList_SelectionChanged(object sender, SelectionChange
222222
var presenter = openedFolderPresenter.FindDescendant<Grid>()!;
223223
presenter!.Background = this.Resources["ListViewItemBackgroundSelected"] as SolidColorBrush;
224224
}
225+
226+
if (SelectedItems?.Count > 1 || SelectedItem?.PrimaryItemAttribute is StorageItemTypes.File)
227+
{
228+
var currentBladeIndex = (ParentShellPageInstance is ColumnShellPage associatedColumnShellPage) ? associatedColumnShellPage.ColumnParams.Column : 0;
229+
this.FindAscendant<ColumnViewBrowser>()?.DismissOtherBlades(currentBladeIndex);
230+
ClearOpenedFolderSelectionIndicator();
231+
}
225232
}
226233

227234
private void FileList_RightTapped(object sender, RightTappedRoutedEventArgs e)
@@ -237,7 +244,12 @@ private void HandleRightClick(object sender, RightTappedRoutedEventArgs e)
237244

238245
private void FileList_PreviewKeyUp(object sender, KeyRoutedEventArgs e)
239246
{
240-
if (IsRenamingItem || !(e.Key is VirtualKey.Up or VirtualKey.Down or VirtualKey.Right))
247+
if
248+
(
249+
IsRenamingItem ||
250+
!(e.Key is VirtualKey.Up or VirtualKey.Down or VirtualKey.Right) ||
251+
SelectedItems?.Count > 1
252+
)
241253
return;
242254

243255
// Open selected directory
@@ -247,7 +259,12 @@ private void FileList_PreviewKeyUp(object sender, KeyRoutedEventArgs e)
247259

248260
protected override async void FileList_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
249261
{
250-
if (ParentShellPageInstance is null || IsRenamingItem)
262+
if
263+
(
264+
ParentShellPageInstance is null ||
265+
IsRenamingItem ||
266+
SelectedItems?.Count > 1
267+
)
251268
return;
252269

253270
var ctrlPressed = InputKeyboardSource.GetKeyStateForCurrentThread(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);

src/Files.App/Views/LayoutModes/ColumnViewBrowser.xaml.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ private void DismissOtherBlades(BladeItem blade)
184184
DismissOtherBlades(ColumnHost.ActiveBlades.IndexOf(blade));
185185
}
186186

187-
private void DismissOtherBlades(int index)
187+
public void DismissOtherBlades(int index)
188188
{
189189
if (index >= 0)
190190
{

0 commit comments

Comments
 (0)