Skip to content

Commit d73f3a1

Browse files
committed
Fix custom hotkey preview issue
1 parent 0893134 commit d73f3a1

File tree

7 files changed

+33
-23
lines changed

7 files changed

+33
-23
lines changed

Flow.Launcher/CustomQueryHotkeySetting.xaml.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,23 @@
77
using System.Windows.Input;
88
using System.Windows.Controls;
99
using Flow.Launcher.Core;
10+
using Flow.Launcher.ViewModel;
1011

1112
namespace Flow.Launcher
1213
{
1314
public partial class CustomQueryHotkeySetting : Window
1415
{
1516
private SettingWindow _settingWidow;
17+
private readonly Settings _settings;
18+
private readonly MainViewModel _mainViewModel;
1619
private bool update;
1720
private CustomPluginHotkey updateCustomHotkey;
18-
public Settings Settings { get; }
1921

20-
public CustomQueryHotkeySetting(SettingWindow settingWidow, Settings settings)
22+
public CustomQueryHotkeySetting(SettingWindow settingWidow, Settings settings, MainViewModel mainVM)
2123
{
2224
_settingWidow = settingWidow;
23-
Settings = settings;
25+
_settings = settings;
26+
_mainViewModel = mainVM;
2427
InitializeComponent();
2528
}
2629

@@ -33,13 +36,13 @@ private void btnAdd_OnClick(object sender, RoutedEventArgs e)
3336
{
3437
if (!update)
3538
{
36-
Settings.CustomPluginHotkeys ??= new ObservableCollection<CustomPluginHotkey>();
39+
_settings.CustomPluginHotkeys ??= new ObservableCollection<CustomPluginHotkey>();
3740

3841
var pluginHotkey = new CustomPluginHotkey
3942
{
4043
Hotkey = HotkeyControl.CurrentHotkey.ToString(), ActionKeyword = tbAction.Text
4144
};
42-
Settings.CustomPluginHotkeys.Add(pluginHotkey);
45+
_settings.CustomPluginHotkeys.Add(pluginHotkey);
4346

4447
HotKeyMapper.SetCustomQueryHotkey(pluginHotkey);
4548
}
@@ -59,7 +62,7 @@ private void btnAdd_OnClick(object sender, RoutedEventArgs e)
5962

6063
public void UpdateItem(CustomPluginHotkey item)
6164
{
62-
updateCustomHotkey = Settings.CustomPluginHotkeys.FirstOrDefault(o =>
65+
updateCustomHotkey = _settings.CustomPluginHotkeys.FirstOrDefault(o =>
6366
o.ActionKeyword == item.ActionKeyword && o.Hotkey == item.Hotkey);
6467
if (updateCustomHotkey == null)
6568
{
@@ -77,8 +80,7 @@ public void UpdateItem(CustomPluginHotkey item)
7780
private void BtnTestActionKeyword_OnClick(object sender, RoutedEventArgs e)
7881
{
7982
App.API.ChangeQuery(tbAction.Text);
80-
Application.Current.MainWindow.Show();
81-
Application.Current.MainWindow.Opacity = 1;
83+
_mainViewModel.Show(false);
8284
Application.Current.MainWindow.Focus();
8385
}
8486

Flow.Launcher/CustomShortcutSetting.xaml.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,24 @@
44
using System.Windows.Input;
55
using Flow.Launcher.SettingPages.ViewModels;
66
using Flow.Launcher.Core;
7+
using Flow.Launcher.ViewModel;
78

89
namespace Flow.Launcher
910
{
1011
public partial class CustomShortcutSetting : Window
1112
{
1213
private readonly SettingsPaneHotkeyViewModel _hotkeyVm;
14+
private readonly MainViewModel _mainViewModel;
1315
public string Key { get; set; } = String.Empty;
1416
public string Value { get; set; } = String.Empty;
1517
private string originalKey { get; } = null;
1618
private string originalValue { get; } = null;
1719
private bool update { get; } = false;
1820

19-
public CustomShortcutSetting(SettingsPaneHotkeyViewModel vm)
21+
public CustomShortcutSetting(SettingsPaneHotkeyViewModel vm, MainViewModel mainVM)
2022
{
2123
_hotkeyVm = vm;
24+
_mainViewModel = mainVM;
2225
InitializeComponent();
2326
}
2427

@@ -65,8 +68,7 @@ private void cmdEsc_OnPress(object sender, ExecutedRoutedEventArgs e)
6568
private void BtnTestShortcut_OnClick(object sender, RoutedEventArgs e)
6669
{
6770
App.API.ChangeQuery(tbExpand.Text);
68-
Application.Current.MainWindow.Show();
69-
Application.Current.MainWindow.Opacity = 1;
71+
_mainViewModel.Show(false);
7072
Application.Current.MainWindow.Focus();
7173
}
7274
}

Flow.Launcher/PublicAPIInstance.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ public void OpenSettingDialog()
105105
{
106106
Application.Current.Dispatcher.Invoke(() =>
107107
{
108-
SettingWindow sw = SingletonWindowOpener.Open<SettingWindow>(this, _settingsVM);
108+
SettingWindow sw = SingletonWindowOpener.Open<SettingWindow>(this, _settingsVM, _mainVM);
109109
});
110110
}
111111

Flow.Launcher/SettingPages/ViewModels/SettingsPaneHotkeyViewModel.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,14 @@
88
using Flow.Launcher.Infrastructure.UserSettings;
99
using Flow.Launcher.Plugin;
1010
using Flow.Launcher.Core;
11+
using Flow.Launcher.ViewModel;
1112

1213
namespace Flow.Launcher.SettingPages.ViewModels;
1314

1415
public partial class SettingsPaneHotkeyViewModel : BaseModel
1516
{
1617
public Settings Settings { get; }
18+
private MainViewModel MainVM { get; }
1719

1820
public CustomPluginHotkey SelectedCustomPluginHotkey { get; set; }
1921
public CustomShortcutModel SelectedCustomShortcut { get; set; }
@@ -25,9 +27,10 @@ public partial class SettingsPaneHotkeyViewModel : BaseModel
2527
$"{KeyConstant.Ctrl}+{KeyConstant.Alt}"
2628
};
2729

28-
public SettingsPaneHotkeyViewModel(Settings settings)
30+
public SettingsPaneHotkeyViewModel(Settings settings, MainViewModel mainVM)
2931
{
3032
Settings = settings;
33+
MainVM = mainVM;
3134
}
3235

3336
[RelayCommand]
@@ -71,15 +74,15 @@ private void CustomHotkeyEdit()
7174
return;
7275
}
7376

74-
var window = new CustomQueryHotkeySetting(null, Settings);
77+
var window = new CustomQueryHotkeySetting(null, Settings, MainVM);
7578
window.UpdateItem(item);
7679
window.ShowDialog();
7780
}
7881

7982
[RelayCommand]
8083
private void CustomHotkeyAdd()
8184
{
82-
new CustomQueryHotkeySetting(null, Settings).ShowDialog();
85+
new CustomQueryHotkeySetting(null, Settings, MainVM).ShowDialog();
8386
}
8487

8588
[RelayCommand]
@@ -126,7 +129,7 @@ private void CustomShortcutEdit()
126129
[RelayCommand]
127130
private void CustomShortcutAdd()
128131
{
129-
var window = new CustomShortcutSetting(this);
132+
var window = new CustomShortcutSetting(this, MainVM);
130133
if (window.ShowDialog() is true)
131134
{
132135
var shortcut = new CustomShortcutModel(window.Key, window.Value);

Flow.Launcher/SettingPages/Views/SettingsPaneHotkey.xaml.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
1212
{
1313
if (!IsInitialized)
1414
{
15-
if (e.ExtraData is not SettingWindow.PaneData { Settings: { } settings })
15+
if (e.ExtraData is not SettingWindow.PaneData { Settings: { } settings, MainViewModel: { } mainVM })
1616
throw new ArgumentException("Settings are required for SettingsPaneHotkey.");
17-
_viewModel = new SettingsPaneHotkeyViewModel(settings);
17+
_viewModel = new SettingsPaneHotkeyViewModel(settings, mainVM);
1818
DataContext = _viewModel;
1919
InitializeComponent();
2020
}

Flow.Launcher/SettingWindow.xaml.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@ public partial class SettingWindow
2020
private readonly IPublicAPI _api;
2121
private readonly Settings _settings;
2222
private readonly SettingWindowViewModel _viewModel;
23+
private readonly MainViewModel _mainVM;
2324

24-
public SettingWindow(IPublicAPI api, SettingWindowViewModel viewModel)
25+
public SettingWindow(IPublicAPI api, SettingWindowViewModel viewModel, MainViewModel mainVM)
2526
{
2627
_settings = viewModel.Settings;
2728
DataContext = viewModel;
2829
_viewModel = viewModel;
30+
_mainVM = mainVM;
2931
_api = api;
3032
InitializePosition();
3133
InitializeComponent();
@@ -160,7 +162,7 @@ private double WindowTop()
160162

161163
private void NavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
162164
{
163-
var paneData = new PaneData(_settings, _viewModel.Updater, _viewModel.Portable);
165+
var paneData = new PaneData(_settings, _viewModel.Updater, _viewModel.Portable, _mainVM);
164166
if (args.IsSettingsSelected)
165167
{
166168
ContentFrame.Navigate(typeof(SettingsPaneGeneral), paneData);
@@ -206,5 +208,5 @@ private void ContentFrame_Loaded(object sender, RoutedEventArgs e)
206208
NavView.SelectedItem ??= NavView.MenuItems[0]; /* Set First Page */
207209
}
208210

209-
public record PaneData(Settings Settings, Updater Updater, IPortable Portable);
211+
public record PaneData(Settings Settings, Updater Updater, IPortable Portable, MainViewModel MainViewModel);
210212
}

Flow.Launcher/ViewModel/MainViewModel.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1359,7 +1359,7 @@ public void ToggleFlowLauncher()
13591359
}
13601360
}
13611361

1362-
public void Show()
1362+
public void Show(bool invokeEvent = true)
13631363
{
13641364
Application.Current.Dispatcher.Invoke(() =>
13651365
{
@@ -1368,7 +1368,8 @@ public void Show()
13681368
MainWindowOpacity = 1;
13691369

13701370
MainWindowVisibilityStatus = true;
1371-
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = true });
1371+
if (invokeEvent)
1372+
VisibilityChanged?.Invoke(this, new VisibilityChangedEventArgs { IsVisible = true });
13721373
});
13731374
}
13741375

0 commit comments

Comments
 (0)