diff --git a/src/Files.App/Actions/FileSystem/OpenItemAction.cs b/src/Files.App/Actions/FileSystem/OpenItemAction.cs index 8d9d6bb3aab3..d3ea61bf6c57 100644 --- a/src/Files.App/Actions/FileSystem/OpenItemAction.cs +++ b/src/Files.App/Actions/FileSystem/OpenItemAction.cs @@ -27,7 +27,9 @@ public HotKey HotKey public bool IsExecutable => context.HasSelection && !(context.ShellPage is ColumnShellPage && - context.SelectedItem?.PrimaryItemAttribute == StorageItemTypes.Folder); + context.SelectedItem?.PrimaryItemAttribute == StorageItemTypes.Folder) && + !(context.PageType == ContentPageTypes.RecycleBin && + context.SelectedItems.All(x => x.IsFolder)); public OpenItemAction() { diff --git a/src/Files.App/Actions/Navigation/OpenInNewPane/BaseOpenInNewPaneAction.cs b/src/Files.App/Actions/Navigation/OpenInNewPane/BaseOpenInNewPaneAction.cs index 5fe4ec301e7e..c7e9e9d1ac47 100644 --- a/src/Files.App/Actions/Navigation/OpenInNewPane/BaseOpenInNewPaneAction.cs +++ b/src/Files.App/Actions/Navigation/OpenInNewPane/BaseOpenInNewPaneAction.cs @@ -17,6 +17,7 @@ public string Description => Strings.OpenDirectoryInNewPaneDescription.GetLocalizedResource(); public virtual bool IsExecutable => + ContentPageContext.PageType != ContentPageTypes.RecycleBin && ContentPageContext.SelectedItem is not null && ContentPageContext.SelectedItem.IsFolder; diff --git a/src/Files.App/Actions/Navigation/OpenInNewTab/BaseOpenInNewTabAction.cs b/src/Files.App/Actions/Navigation/OpenInNewTab/BaseOpenInNewTabAction.cs index df863028f7a4..d8b77afb8262 100644 --- a/src/Files.App/Actions/Navigation/OpenInNewTab/BaseOpenInNewTabAction.cs +++ b/src/Files.App/Actions/Navigation/OpenInNewTab/BaseOpenInNewTabAction.cs @@ -25,6 +25,7 @@ public virtual bool IsAccessibleGlobally public virtual bool IsExecutable => ContentPageContext.ShellPage is not null && ContentPageContext.ShellPage.SlimContentPage is not null && + ContentPageContext.PageType != ContentPageTypes.RecycleBin && ContentPageContext.SelectedItems.Count is not 0 && ContentPageContext.SelectedItems.Count <= 5 && ContentPageContext.SelectedItems.Count(x => x.IsFolder) == ContentPageContext.SelectedItems.Count; diff --git a/src/Files.App/Actions/Navigation/OpenInNewWindow/BaseOpenInNewWindowAction.cs b/src/Files.App/Actions/Navigation/OpenInNewWindow/BaseOpenInNewWindowAction.cs index d89469546cfb..2715c9dd8512 100644 --- a/src/Files.App/Actions/Navigation/OpenInNewWindow/BaseOpenInNewWindowAction.cs +++ b/src/Files.App/Actions/Navigation/OpenInNewWindow/BaseOpenInNewWindowAction.cs @@ -30,6 +30,7 @@ public virtual bool IsAccessibleGlobally public virtual bool IsExecutable => ContentPageContext.ShellPage is not null && ContentPageContext.ShellPage.SlimContentPage is not null && + ContentPageContext.PageType != ContentPageTypes.RecycleBin && ContentPageContext.SelectedItems.Count is not 0 && ContentPageContext.SelectedItems.Count <= 5 && ContentPageContext.SelectedItems.Count(x => x.IsFolder) == ContentPageContext.SelectedItems.Count; diff --git a/src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs b/src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs index f0947f14af60..168853c27916 100644 --- a/src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs +++ b/src/Files.App/Data/Factories/ContentPageContextFlyoutFactory.cs @@ -380,7 +380,10 @@ public static List GetBaseItemMenuItems( { IsVisible = currentInstanceViewModel.IsPageTypeRecycleBin && itemsSelected, }.Build(), - new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenItem).Build(), + new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenItem) + { + IsVisible = !(currentInstanceViewModel.IsPageTypeRecycleBin && areAllItemsFolders) + }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenItemWithApplicationPicker) { Tag = "OpenWith", @@ -409,15 +412,15 @@ public static List GetBaseItemMenuItems( new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenFileLocation).Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenInNewTab) { - IsVisible = UserSettingsService.GeneralSettingsService.ShowOpenInNewTab && Commands.OpenInNewTab.IsExecutable + IsVisible = UserSettingsService.GeneralSettingsService.ShowOpenInNewTab && Commands.OpenInNewTab.IsExecutable && !currentInstanceViewModel.IsPageTypeRecycleBin }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenInNewWindow) { - IsVisible = UserSettingsService.GeneralSettingsService.ShowOpenInNewWindow && Commands.OpenInNewWindow.IsExecutable + IsVisible = UserSettingsService.GeneralSettingsService.ShowOpenInNewWindow && Commands.OpenInNewWindow.IsExecutable && !currentInstanceViewModel.IsPageTypeRecycleBin }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.OpenInNewPane) { - IsVisible = UserSettingsService.GeneralSettingsService.ShowOpenInNewPane && Commands.OpenInNewPane.IsExecutable + IsVisible = UserSettingsService.GeneralSettingsService.ShowOpenInNewPane && Commands.OpenInNewPane.IsExecutable && !currentInstanceViewModel.IsPageTypeRecycleBin }.Build(), new ContextMenuFlyoutItemViewModel() { @@ -479,7 +482,7 @@ public static List GetBaseItemMenuItems( }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.CreateFolderWithSelection) { - IsVisible = UserSettingsService.GeneralSettingsService.ShowCreateFolderWithSelection && itemsSelected + IsVisible = UserSettingsService.GeneralSettingsService.ShowCreateFolderWithSelection && itemsSelected && !currentInstanceViewModel.IsPageTypeRecycleBin }.Build(), new ContextMenuFlyoutItemViewModelBuilder(Commands.CreateShortcut) {