diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index 103d523a7..30c117378 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -348,7 +348,7 @@ Back / Context Menu Item Navigation Open Context Menu - Open A File/Folder's Containing Folder + Open Containing Folder Run as Admin / Open Folder in Default File Manager Query History Back to Result in Context Menu diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs index 8ba3ba800..af7cbe442 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/UWP.cs @@ -14,6 +14,7 @@ using Flow.Launcher.Plugin.SharedModels; using System.Threading.Channels; using System.Xml; using Windows.ApplicationModel.Core; +using System.Windows.Input; namespace Flow.Launcher.Plugin.Program.Programs { @@ -422,12 +423,16 @@ namespace Flow.Launcher.Plugin.Program.Programs ContextData = this, Action = e => { - var elevated = ( - e.SpecialKeyState.CtrlPressed && - e.SpecialKeyState.ShiftPressed && - !e.SpecialKeyState.AltPressed && - !e.SpecialKeyState.WinPressed - ); + // Ctrl + Enter to open containing folder + bool openFolder = e.SpecialKeyState.ToModifierKeys() == ModifierKeys.Control; + if (openFolder) + { + Main.Context.API.OpenDirectory(Location); + return true; + } + + // Ctrl + Shift + Enter to run elevated + bool elevated = e.SpecialKeyState.ToModifierKeys() == (ModifierKeys.Control | ModifierKeys.Shift); bool shouldRunElevated = elevated && CanRunElevated; _ = Task.Run(() => Launch(shouldRunElevated)).ConfigureAwait(false); diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index 4afedb9e4..5cca2534b 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -16,6 +16,7 @@ using System.Diagnostics.CodeAnalysis; using System.Threading.Channels; using Flow.Launcher.Plugin.Program.Views.Models; using IniParser; +using System.Windows.Input; namespace Flow.Launcher.Plugin.Program.Programs { @@ -169,12 +170,16 @@ namespace Flow.Launcher.Plugin.Program.Programs ContextData = this, Action = c => { - var runAsAdmin = ( - c.SpecialKeyState.CtrlPressed && - c.SpecialKeyState.ShiftPressed && - !c.SpecialKeyState.AltPressed && - !c.SpecialKeyState.WinPressed - ); + // Ctrl + Enter to open containing folder + bool openFolder = c.SpecialKeyState.ToModifierKeys() == ModifierKeys.Control; + if (openFolder) + { + Main.Context.API.OpenDirectory(ParentDirectory, FullPath); + return true; + } + + // Ctrl + Shift + Enter to run as admin + bool runAsAdmin = c.SpecialKeyState.ToModifierKeys() == (ModifierKeys.Control | ModifierKeys.Shift); var info = new ProcessStartInfo {