Skip to content

Commit cfa3306

Browse files
author
EVEJay
committed
Moved hotkey handling to main window. Added proper hotkey removal when last overlay is closed.
1 parent 0dbcdd3 commit cfa3306

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
@@ -2509,6 +2511,15 @@ private void OverlayWindow_MenuItem_Click(object sender, RoutedEventArgs e)
25092511
return;
25102512
}
25112513
}
2514+
2515+
// Set up hotkeys
2516+
try
2517+
{
2518+
HotkeyManager.Current.AddOrReplace("Toggle click trough overlay windows.", Key.T, ModifierKeys.Alt | ModifierKeys.Control | ModifierKeys.Shift, OverlayWindows_ToggleClicktrough_HotkeyTrigger);
2519+
}
2520+
catch (NHotkey.HotkeyAlreadyRegisteredException exception)
2521+
{
2522+
}
25122523

25132524
Overlay newOverlayWindow = new Overlay(this);
25142525
newOverlayWindow.Closing += OnOverlayWindowClosing;
@@ -2521,6 +2532,11 @@ private void OverlayClickTroughToggle_MenuItem_Click(object sender, RoutedEventA
25212532
OverlayWindow_ToggleClickTrough();
25222533
}
25232534

2535+
private void OverlayWindows_ToggleClicktrough_HotkeyTrigger(object sender, HotkeyEventArgs eventArgs)
2536+
{
2537+
OverlayWindow_ToggleClickTrough();
2538+
}
2539+
25242540
public void OverlayWindow_ToggleClickTrough()
25252541
{
25262542
overlayWindowsAreClickTrough = !overlayWindowsAreClickTrough;
@@ -2533,6 +2549,17 @@ public void OverlayWindow_ToggleClickTrough()
25332549
public void OnOverlayWindowClosing(object sender, CancelEventArgs e)
25342550
{
25352551
overlayWindows.Remove((Overlay)sender);
2552+
2553+
if (overlayWindows.Count < 1)
2554+
{
2555+
try
2556+
{
2557+
HotkeyManager.Current.Remove("Toggle click trough overlay windows.");
2558+
}
2559+
catch
2560+
{
2561+
}
2562+
}
25362563
}
25372564
}
25382565

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)