Skip to content

Commit f079e9f

Browse files
authored
Fix: Fixed issue where multiselect broke open with single click (#11131)
1 parent 0efb5aa commit f079e9f

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

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

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
using Microsoft.UI.Xaml.Media;
1616
using Microsoft.UI.Xaml.Navigation;
1717
using System;
18+
using System.Globalization;
1819
using System.Linq;
1920
using UWPToWinAppSDKUpgradeHelpers;
2021
using Windows.Foundation;
@@ -417,28 +418,34 @@ private async void ReloadItemIcons()
417418

418419
private async void FileList_ItemTapped(object sender, TappedRoutedEventArgs e)
419420
{
421+
var clickedItem = e.OriginalSource as FrameworkElement;
420422
var ctrlPressed = InputKeyboardSource.GetKeyStateForCurrentThread(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
421423
var shiftPressed = InputKeyboardSource.GetKeyStateForCurrentThread(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);
422424
var item = (e.OriginalSource as FrameworkElement)?.DataContext as ListedItem;
423425
if (item is null)
424426
return;
427+
425428
// Skip code if the control or shift key is pressed or if the user is using multiselect
426-
if (ctrlPressed || shiftPressed || AppModel.ShowSelectionCheckboxes)
429+
if
430+
(
431+
ctrlPressed ||
432+
shiftPressed ||
433+
AppModel.ShowSelectionCheckboxes && !UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick ||
434+
clickedItem is Microsoft.UI.Xaml.Shapes.Rectangle
435+
)
427436
{
428437
e.Handled = true;
429438
return;
430439
}
431440

432441
// Check if the setting to open items with a single click is turned on
433-
if (item is not null
434-
&& UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick)
442+
if (UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick)
435443
{
436444
ResetRenameDoubleClick();
437445
_ = NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
438446
}
439447
else
440448
{
441-
var clickedItem = e.OriginalSource as FrameworkElement;
442449
if (clickedItem is TextBlock && ((TextBlock)clickedItem).Name == "ItemName")
443450
{
444451
CheckRenameDoubleClick(clickedItem?.DataContext);

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ private async void ReloadSelectedItemsIcon()
378378

379379
private async void FileList_ItemTapped(object sender, TappedRoutedEventArgs e)
380380
{
381+
var clickedItem = e.OriginalSource as FrameworkElement;
381382
var ctrlPressed = InputKeyboardSource.GetKeyStateForCurrentThread(VirtualKey.Control).HasFlag(CoreVirtualKeyStates.Down);
382383
var shiftPressed = InputKeyboardSource.GetKeyStateForCurrentThread(VirtualKey.Shift).HasFlag(CoreVirtualKeyStates.Down);
383384

@@ -386,19 +387,26 @@ private async void FileList_ItemTapped(object sender, TappedRoutedEventArgs e)
386387
return;
387388

388389
// Skip code if the control or shift key is pressed or if the user is using multiselect
389-
if (ctrlPressed || shiftPressed || AppModel.ShowSelectionCheckboxes)
390+
if
391+
(
392+
ctrlPressed ||
393+
shiftPressed ||
394+
AppModel.ShowSelectionCheckboxes && !UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick ||
395+
clickedItem is Microsoft.UI.Xaml.Shapes.Rectangle
396+
)
397+
{
398+
e.Handled = true;
390399
return;
400+
}
391401

392402
// Check if the setting to open items with a single click is turned on
393-
if (item is not null
394-
&& UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick)
403+
if (UserSettingsService.FoldersSettingsService.OpenItemsWithOneClick)
395404
{
396405
ResetRenameDoubleClick();
397406
_ = NavigationHelpers.OpenSelectedItems(ParentShellPageInstance, false);
398407
}
399408
else
400409
{
401-
var clickedItem = e.OriginalSource as FrameworkElement;
402410
if (clickedItem is TextBlock textBlock && textBlock.Name == "ItemName")
403411
{
404412
CheckRenameDoubleClick(clickedItem?.DataContext);

0 commit comments

Comments
 (0)