@@ -471,6 +471,12 @@ protected override async void FileList_PreviewKeyDown(object sender, KeyRoutedEv
471471 if ( selectedFolder is not null )
472472 NavigationHelpers . OpenInSecondaryPane ( ParentShellPageInstance , selectedFolder ) ;
473473 }
474+ else if ( ! ctrlPressed && ! shiftPressed && ! UserSettingsService . FoldersSettingsService . OpenItemsWithOneClick )
475+ {
476+ var selectedItem = SelectedItems ? . FirstOrDefault ( ) ;
477+ if ( selectedItem != null )
478+ await OpenItem ( selectedItem ) ;
479+ }
474480 }
475481 else if ( e . Key == VirtualKey . Enter && e . KeyStatus . IsMenuKeyDown )
476482 {
@@ -607,12 +613,33 @@ clickedItem is Microsoft.UI.Xaml.Shapes.Rectangle
607613 }
608614 }
609615
616+ private async Task OpenItem ( ListedItem item )
617+ {
618+ if ( ! Commands . OpenItem . IsExecutable )
619+ {
620+ var itemType = item . PrimaryItemAttribute == StorageItemTypes . Folder ? FilesystemItemType . Directory : FilesystemItemType . File ;
621+ await NavigationHelpers . OpenPath ( item . ItemPath , ParentShellPageInstance , itemType ) ;
622+ }
623+ else
624+ {
625+ await Commands . OpenItem . ExecuteAsync ( ) ;
626+ }
627+ }
628+
610629 private async void FileList_DoubleTapped ( object sender , DoubleTappedRoutedEventArgs e )
611630 {
612631 // Skip opening selected items if the double tap doesn't capture an item
613- if ( ( e . OriginalSource as FrameworkElement ) ? . DataContext is ListedItem item && ! UserSettingsService . FoldersSettingsService . OpenItemsWithOneClick )
614- await Commands . OpenItem . ExecuteAsync ( ) ;
615- else if ( ( e . OriginalSource as FrameworkElement ) ? . DataContext is not ListedItem && UserSettingsService . FoldersSettingsService . DoubleClickToGoUp )
632+ var originalElement = e . OriginalSource as FrameworkElement ;
633+ var dataContext = originalElement ? . DataContext ;
634+
635+ // Try to get the item from DataContext or from sender (ListView)
636+ ListedItem ? item = dataContext as ListedItem ;
637+ if ( item == null && sender is ListView listView && listView . SelectedItem is ListedItem selectedItem )
638+ item = selectedItem ;
639+
640+ if ( item != null && ! UserSettingsService . FoldersSettingsService . OpenItemsWithOneClick )
641+ await OpenItem ( item ) ;
642+ else if ( item == null && UserSettingsService . FoldersSettingsService . DoubleClickToGoUp )
616643 await Commands . NavigateUp . ExecuteAsync ( ) ;
617644
618645 ResetRenameDoubleClick ( ) ;
0 commit comments