From 979aa3ddff72e43bb17eb6f0f6c13ee175916ba5 Mon Sep 17 00:00:00 2001
From: Vic <10308169+VictoriousRaptor@users.noreply.github.com>
Date: Tue, 27 Dec 2022 15:21:06 +0800
Subject: [PATCH] Support hotkey modifiers
---
Flow.Launcher/MainWindow.xaml | 3 ++-
Flow.Launcher/ViewModel/MainViewModel.cs | 16 ++++++++++++++--
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/Flow.Launcher/MainWindow.xaml b/Flow.Launcher/MainWindow.xaml
index e65ac258a..433c3ec7f 100644
--- a/Flow.Launcher/MainWindow.xaml
+++ b/Flow.Launcher/MainWindow.xaml
@@ -182,7 +182,8 @@
Modifiers="Ctrl"/>
+ Command="{Binding TogglePreviewCommand}"
+ Modifiers="{Binding TogglePreviewModifiers}"/>
diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs
index 3c603f90b..f7e6318ea 100644
--- a/Flow.Launcher/ViewModel/MainViewModel.cs
+++ b/Flow.Launcher/ViewModel/MainViewModel.cs
@@ -23,6 +23,7 @@ using System.IO;
using System.Collections.Specialized;
using CommunityToolkit.Mvvm.Input;
using System.Globalization;
+using System.Windows.Input;
namespace Flow.Launcher.ViewModel
{
@@ -74,7 +75,7 @@ namespace Flow.Launcher.ViewModel
OnPropertyChanged(nameof(OpenResultCommandModifiers));
break;
case nameof(Settings.PreviewHotkey):
- OnPropertyChanged(nameof(TogglePreviewHotkey));
+ UpdatePreviewHotkey();
break;
}
};
@@ -114,6 +115,7 @@ namespace Flow.Launcher.ViewModel
RegisterViewUpdate();
RegisterResultsUpdatedEvent();
_ = RegisterClockAndDateUpdateAsync();
+ UpdatePreviewHotkey();
}
private void RegisterViewUpdate()
@@ -582,7 +584,9 @@ namespace Flow.Launcher.ViewModel
public string OpenResultCommandModifiers => Settings.OpenResultModifiers;
- public string TogglePreviewHotkey => Settings.PreviewHotkey; // TODO: is hotkey combo possible?
+ public Key TogglePreviewHotkey { get; set; }
+
+ public ModifierKeys TogglePreviewModifiers { get; set; }
public string Image => Constant.QueryTextBoxIconImagePath;
@@ -1014,6 +1018,14 @@ namespace Flow.Launcher.ViewModel
return Settings.IgnoreHotkeysOnFullscreen && WindowsInteropHelper.IsWindowFullscreen() || GameModeStatus;
}
+ private void UpdatePreviewHotkey()
+ {
+ var converter = new KeyGestureConverter();
+ var key = (KeyGesture)converter.ConvertFromString(Settings.PreviewHotkey);
+ TogglePreviewHotkey = key.Key;
+ TogglePreviewModifiers = key.Modifiers;
+ }
+
#endregion
#region Public Methods