Skip to content

Commit a687782

Browse files
authored
Merge pull request #178 from EVEJay/master
Moved hotkey handling to main window and fixed a possible crash.
2 parents e0467ae + cfa3306 commit a687782

File tree

2 files changed

+28
-11
lines changed

2 files changed

+28
-11
lines changed

SMT/MainWindow.xaml.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
using System.Xml.Serialization;
2020
using Microsoft.Toolkit.Uwp.Notifications;
2121
using Microsoft.Win32;
22+
using NHotkey;
23+
using NHotkey.Wpf;
2224
using SMT.EVEData;
2325

2426
namespace SMT
@@ -2546,6 +2548,15 @@ private void OverlayWindow_MenuItem_Click(object sender, RoutedEventArgs e)
25462548
return;
25472549
}
25482550
}
2551+
2552+
// Set up hotkeys
2553+
try
2554+
{
2555+
HotkeyManager.Current.AddOrReplace("Toggle click trough overlay windows.", Key.T, ModifierKeys.Alt | ModifierKeys.Control | ModifierKeys.Shift, OverlayWindows_ToggleClicktrough_HotkeyTrigger);
2556+
}
2557+
catch (NHotkey.HotkeyAlreadyRegisteredException exception)
2558+
{
2559+
}
25492560

25502561
Overlay newOverlayWindow = new Overlay(this);
25512562
newOverlayWindow.Closing += OnOverlayWindowClosing;
@@ -2558,6 +2569,11 @@ private void OverlayClickTroughToggle_MenuItem_Click(object sender, RoutedEventA
25582569
OverlayWindow_ToggleClickTrough();
25592570
}
25602571

2572+
private void OverlayWindows_ToggleClicktrough_HotkeyTrigger(object sender, HotkeyEventArgs eventArgs)
2573+
{
2574+
OverlayWindow_ToggleClickTrough();
2575+
}
2576+
25612577
public void OverlayWindow_ToggleClickTrough()
25622578
{
25632579
overlayWindowsAreClickTrough = !overlayWindowsAreClickTrough;
@@ -2570,6 +2586,17 @@ public void OverlayWindow_ToggleClickTrough()
25702586
public void OnOverlayWindowClosing(object sender, CancelEventArgs e)
25712587
{
25722588
overlayWindows.Remove((Overlay)sender);
2589+
2590+
if (overlayWindows.Count < 1)
2591+
{
2592+
try
2593+
{
2594+
HotkeyManager.Current.Remove("Toggle click trough overlay windows.");
2595+
}
2596+
catch
2597+
{
2598+
}
2599+
}
25732600
}
25742601
}
25752602

SMT/Overlay.xaml.cs

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using NHotkey.Wpf;
2-
using System;
1+
using System;
32
using System.Collections.Generic;
43
using System.ComponentModel;
54
using System.Linq;
@@ -19,7 +18,6 @@
1918
using Windows.Services;
2019
using Microsoft.IdentityModel.Tokens;
2120
using Microsoft.VisualBasic.Logging;
22-
using NHotkey;
2321
using SMT.EVEData;
2422
using static SMT.EVEData.Navigation;
2523

@@ -407,9 +405,6 @@ public Overlay(MainWindow mw)
407405
Closing += Overlay_Closing;
408406
// We can only redraw stuff when the canvas is actually resized, otherwise dimensions will be wrong!
409407
overlay_Canvas.SizeChanged += OnCanvasSizeChanged;
410-
411-
// Set up hotkeys
412-
HotkeyManager.Current.AddOrReplace("Toggle click trough overlay windows.", Key.T, ModifierKeys.Alt | ModifierKeys.Control | ModifierKeys.Shift, OnClickTroughToggle);
413408

414409
// Update settings
415410
intelUrgentPeriod = mainWindow.MapConf.IntelFreshTime;
@@ -450,11 +445,6 @@ public Overlay(MainWindow mw)
450445
dataUpdateTimer.Start();
451446
}
452447

453-
private void OnClickTroughToggle(object sender, HotkeyEventArgs e)
454-
{
455-
mainWindow.OverlayWindow_ToggleClickTrough();
456-
}
457-
458448
public void ToggleClickTrough(bool isClickTrough)
459449
{
460450
var hwnd = new WindowInteropHelper(this).Handle;

0 commit comments

Comments
 (0)