From b88e2e9e8ead07b5c3f1fd0e957f05e6ee47077f Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Sun, 20 Jul 2025 20:58:49 +0800 Subject: [PATCH] Do not register dialog jump hotkey when dialog jump is disabled --- .../UserSettings/Settings.cs | 14 +++++++++- Flow.Launcher/Helper/HotKeyMapper.cs | 26 ++++++++++++------- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs index c6cf2097a..0c322bc07 100644 --- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs +++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs @@ -531,7 +531,19 @@ namespace Flow.Launcher.Infrastructure.UserSettings } }; - public bool EnableDialogJump { get; set; } = true; + private bool _enableDialogJump = true; + public bool EnableDialogJump + { + get => _enableDialogJump; + set + { + if (_enableDialogJump != value) + { + _enableDialogJump = value; + OnPropertyChanged(); + } + } + } public bool AutoDialogJump { get; set; } = false; diff --git a/Flow.Launcher/Helper/HotKeyMapper.cs b/Flow.Launcher/Helper/HotKeyMapper.cs index 08e4194a4..29fca1cbe 100644 --- a/Flow.Launcher/Helper/HotKeyMapper.cs +++ b/Flow.Launcher/Helper/HotKeyMapper.cs @@ -139,6 +139,11 @@ internal static class HotKeyMapper foreach (var hotkey in list) { _settings.RegisteredHotkeys.Add(hotkey); + if (hotkey.RegisteredType == RegisteredHotkeyType.DialogJump && !_settings.EnableDialogJump) + { + // If dialog jump is disabled, do not register the hotkey + continue; + } SetHotkey(hotkey); } @@ -158,7 +163,10 @@ internal static class HotKeyMapper ChangeRegisteredHotkey(RegisteredHotkeyType.Toggle, _settings.Hotkey); break; case nameof(_settings.DialogJumpHotkey): - ChangeRegisteredHotkey(RegisteredHotkeyType.DialogJump, _settings.DialogJumpHotkey); + ChangeRegisteredHotkey(RegisteredHotkeyType.DialogJump, _settings.DialogJumpHotkey, _settings.EnableDialogJump); + break; + case nameof(_settings.EnableDialogJump): + ChangeRegisteredHotkey(RegisteredHotkeyType.DialogJump, _settings.DialogJumpHotkey, _settings.EnableDialogJump); break; // Flow Launcher window hotkeys @@ -592,22 +600,19 @@ internal static class HotKeyMapper #region Hotkey Changing - private static void ChangeRegisteredHotkey(RegisteredHotkeyType registeredType, string newHotkeyStr) + private static void ChangeRegisteredHotkey(RegisteredHotkeyType registeredType, string newHotkeyStr, bool setHotkey = true) { var newHotkey = new HotkeyModel(newHotkeyStr); - ChangeRegisteredHotkey(registeredType, newHotkey); + ChangeRegisteredHotkey(registeredType, newHotkey, setHotkey); } - private static void ChangeRegisteredHotkey(RegisteredHotkeyType registeredType, HotkeyModel newHotkey) + private static void ChangeRegisteredHotkey(RegisteredHotkeyType registeredType, HotkeyModel newHotkey, bool setHotkey = true) { // Find the old registered hotkey data item var registeredHotkeyData = _settings.RegisteredHotkeys.FirstOrDefault(h => h.RegisteredType == registeredType); // If it is not found, return - if (registeredHotkeyData == null) - { - return; - } + if (registeredHotkeyData == null) return; // Remove the old hotkey RemoveHotkey(registeredHotkeyData); @@ -616,7 +621,10 @@ internal static class HotKeyMapper registeredHotkeyData.SetHotkey(newHotkey); // Set the new hotkey - SetHotkey(registeredHotkeyData); + if (setHotkey) + { + SetHotkey(registeredHotkeyData); + } } #endregion