From d5eec13284ffb89b747cc14b0682e67c724583c6 Mon Sep 17 00:00:00 2001 From: Thog Date: Fri, 17 Jan 2020 17:22:13 +0100 Subject: [PATCH] Make sure to dispose the Discord module and use GTK quit method Also update Discord Precense when closing a game. --- .../FileSystem/Content/ContentManager.cs | 1 - .../Configuration/DiscordIntegrationModule.cs | 18 ++++++++++++++++++ Ryujinx/Ui/MainWindow.cs | 5 ++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Ryujinx.HLE/FileSystem/Content/ContentManager.cs b/Ryujinx.HLE/FileSystem/Content/ContentManager.cs index ea8623aa46..1c6364c7df 100644 --- a/Ryujinx.HLE/FileSystem/Content/ContentManager.cs +++ b/Ryujinx.HLE/FileSystem/Content/ContentManager.cs @@ -161,7 +161,6 @@ namespace Ryujinx.HLE.FileSystem.Content TimeManager.Instance.InitializeTimeZone(device); device.System.Font.Initialize(this); } - } } diff --git a/Ryujinx/Configuration/DiscordIntegrationModule.cs b/Ryujinx/Configuration/DiscordIntegrationModule.cs index 15540a1c82..87cff00806 100644 --- a/Ryujinx/Configuration/DiscordIntegrationModule.cs +++ b/Ryujinx/Configuration/DiscordIntegrationModule.cs @@ -88,5 +88,23 @@ namespace Ryujinx.Configuration DiscordClient?.SetPresence(DiscordPresence); } + + public static void SwitchToMainMenu() + { + DiscordPresence.Details = "Main Menu"; + DiscordPresence.State = "Idling"; + DiscordPresence.Assets.LargeImageKey = "ryujinx"; + DiscordPresence.Assets.LargeImageText = LargeDescription; + DiscordPresence.Assets.SmallImageKey = null; + DiscordPresence.Assets.SmallImageText = null; + DiscordPresence.Timestamps = new Timestamps(DateTime.UtcNow); + + DiscordClient?.SetPresence(DiscordPresence); + } + + public static void Exit() + { + DiscordClient?.Dispose(); + } } } diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs index 27a4ab889c..74b3bb681b 100644 --- a/Ryujinx/Ui/MainWindow.cs +++ b/Ryujinx/Ui/MainWindow.cs @@ -335,6 +335,8 @@ namespace Ryujinx.Ui _screen = null; _gameLoaded = false; + DiscordIntegrationModule.SwitchToMainMenu(); + Application.Invoke(delegate { _stopEmulation.Sensitive = false; @@ -373,8 +375,9 @@ namespace Ryujinx.Ui Profile.FinishProfiling(); device?.Dispose(); + DiscordIntegrationModule.Exit(); Logger.Shutdown(); - Environment.Exit(0); + Application.Quit(); } private static IRenderer InitializeRenderer()