diff --git a/SMT/MainWindow.xaml.cs b/SMT/MainWindow.xaml.cs index 916d379..81feb8a 100644 --- a/SMT/MainWindow.xaml.cs +++ b/SMT/MainWindow.xaml.cs @@ -19,6 +19,8 @@ using System.Xml.Serialization; using Microsoft.Toolkit.Uwp.Notifications; using Microsoft.Win32; +using NHotkey; +using NHotkey.Wpf; using SMT.EVEData; namespace SMT @@ -2509,6 +2511,15 @@ private void OverlayWindow_MenuItem_Click(object sender, RoutedEventArgs e) return; } } + + // Set up hotkeys + try + { + HotkeyManager.Current.AddOrReplace("Toggle click trough overlay windows.", Key.T, ModifierKeys.Alt | ModifierKeys.Control | ModifierKeys.Shift, OverlayWindows_ToggleClicktrough_HotkeyTrigger); + } + catch (NHotkey.HotkeyAlreadyRegisteredException exception) + { + } Overlay newOverlayWindow = new Overlay(this); newOverlayWindow.Closing += OnOverlayWindowClosing; @@ -2521,6 +2532,11 @@ private void OverlayClickTroughToggle_MenuItem_Click(object sender, RoutedEventA OverlayWindow_ToggleClickTrough(); } + private void OverlayWindows_ToggleClicktrough_HotkeyTrigger(object sender, HotkeyEventArgs eventArgs) + { + OverlayWindow_ToggleClickTrough(); + } + public void OverlayWindow_ToggleClickTrough() { overlayWindowsAreClickTrough = !overlayWindowsAreClickTrough; @@ -2533,6 +2549,17 @@ public void OverlayWindow_ToggleClickTrough() public void OnOverlayWindowClosing(object sender, CancelEventArgs e) { overlayWindows.Remove((Overlay)sender); + + if (overlayWindows.Count < 1) + { + try + { + HotkeyManager.Current.Remove("Toggle click trough overlay windows."); + } + catch + { + } + } } } diff --git a/SMT/Overlay.xaml.cs b/SMT/Overlay.xaml.cs index 63d47e5..09bae30 100644 --- a/SMT/Overlay.xaml.cs +++ b/SMT/Overlay.xaml.cs @@ -1,5 +1,4 @@ -using NHotkey.Wpf; -using System; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -19,7 +18,6 @@ using Windows.Services; using Microsoft.IdentityModel.Tokens; using Microsoft.VisualBasic.Logging; -using NHotkey; using SMT.EVEData; using static SMT.EVEData.Navigation; @@ -407,9 +405,6 @@ public Overlay(MainWindow mw) Closing += Overlay_Closing; // We can only redraw stuff when the canvas is actually resized, otherwise dimensions will be wrong! overlay_Canvas.SizeChanged += OnCanvasSizeChanged; - - // Set up hotkeys - HotkeyManager.Current.AddOrReplace("Toggle click trough overlay windows.", Key.T, ModifierKeys.Alt | ModifierKeys.Control | ModifierKeys.Shift, OnClickTroughToggle); // Update settings intelUrgentPeriod = mainWindow.MapConf.IntelFreshTime; @@ -450,11 +445,6 @@ public Overlay(MainWindow mw) dataUpdateTimer.Start(); } - private void OnClickTroughToggle(object sender, HotkeyEventArgs e) - { - mainWindow.OverlayWindow_ToggleClickTrough(); - } - public void ToggleClickTrough(bool isClickTrough) { var hwnd = new WindowInteropHelper(this).Handle;