public void OnGameClose(object source, EventArgs e) { UnhookGameEvents(); Discord.Dispose(); Discord = null; if (UserSettings.PlayerConfig.HunterPie.Options.CloseWhenGameCloses) { Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new Action(() => { this.Close(); })); } MonsterHunter.StopScanning(); Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Background, new Action(() => { GameOverlay.Dispose(); GameOverlay = null; })); MonsterHunter.DestroyInstances(); }
private void OnWindowClosing(object sender, System.ComponentModel.CancelEventArgs e) { if (!IsUpdating) { UserSettings.SaveNewConfig(); } Debugger.DumpLog(); this.Hide(); // Dispose tray icon if (TrayIcon != null) { TrayIcon.NotifyIcon.Click -= OnTrayIconClick; TrayIcon.ContextMenu.MenuItems[0].Click -= OnTrayIconSettingsClick; TrayIcon.ContextMenu.MenuItems[1].Click -= OnTrayIconExitClick; TrayIcon.Dispose(); } // Dispose stuff & stop scanning threads GameOverlay?.Dispose(); if (MonsterHunter.IsActive) { MonsterHunter.StopScanning(); } Discord?.Dispose(); Scanner.StopScanning(); UserSettings.RemoveFileWatcher(); Settings.Instance.UninstallKeyboardHook(); // Unhook events if (MonsterHunter.Player != null) { UnhookGameEvents(); } if (_source != null) { RemoveHotKeys(); } UnhookEvents(); }