catch glib unhandled exceptions
This commit is contained in:
parent
6f8ba4eec2
commit
3f4ac1cc5d
2 changed files with 16 additions and 19 deletions
|
@ -18,6 +18,7 @@ namespace Ryujinx
|
|||
|
||||
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
|
||||
AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;
|
||||
GLib.ExceptionManager.UnhandledException += Glib_UnhandledException;
|
||||
|
||||
Profile.Initialize();
|
||||
|
||||
|
@ -30,11 +31,7 @@ namespace Ryujinx
|
|||
MainWindow.CreateErrorDialog($"Key file was not found. Please refer to `KEYS.md` for more info");
|
||||
}
|
||||
|
||||
Application gtkApplication = new Application("Ryujinx.Ryujinx", GLib.ApplicationFlags.None);
|
||||
MainWindow mainWindow = new MainWindow(gtkApplication);
|
||||
|
||||
gtkApplication.Register(GLib.Cancellable.Current);
|
||||
gtkApplication.AddWindow(mainWindow);
|
||||
MainWindow mainWindow = new MainWindow();
|
||||
mainWindow.Show();
|
||||
|
||||
if (args.Length == 1)
|
||||
|
@ -61,5 +58,17 @@ namespace Ryujinx
|
|||
Logger.Shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
private static void Glib_UnhandledException(GLib.UnhandledExceptionArgs e)
|
||||
{
|
||||
Exception exception = e.ExceptionObject as Exception;
|
||||
|
||||
Logger.PrintError(LogClass.Application, $"Unhandled exception caught: {exception}");
|
||||
|
||||
if (e.IsTerminating)
|
||||
{
|
||||
Logger.Shutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -45,8 +45,6 @@ namespace Ryujinx.UI
|
|||
|
||||
private static GlScreen _screen;
|
||||
|
||||
private static Application _gtkApplication;
|
||||
|
||||
private static ListStore _tableStore;
|
||||
|
||||
private static bool _updatingGameTable;
|
||||
|
@ -99,9 +97,9 @@ namespace Ryujinx.UI
|
|||
#pragma warning restore CS0649
|
||||
#pragma warning restore IDE0044
|
||||
|
||||
public MainWindow(Application gtkApplication) : this(new Builder("Ryujinx.Ui.MainWindow.glade"), gtkApplication) { }
|
||||
public MainWindow() : this(new Builder("Ryujinx.Ui.MainWindow.glade")) { }
|
||||
|
||||
private MainWindow(Builder builder, Application gtkApplication) : base(builder.GetObject("_mainWin").Handle)
|
||||
private MainWindow(Builder builder) : base(builder.GetObject("_mainWin").Handle)
|
||||
{
|
||||
builder.Autoconnect(this);
|
||||
|
||||
|
@ -115,8 +113,6 @@ namespace Ryujinx.UI
|
|||
|
||||
_device = new HLE.Switch(_renderer, _audioOut);
|
||||
|
||||
_gtkApplication = gtkApplication;
|
||||
|
||||
_treeView = _gameTable;
|
||||
|
||||
Configuration.Load(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json"));
|
||||
|
@ -608,10 +604,6 @@ namespace Ryujinx.UI
|
|||
private void Settings_Pressed(object sender, EventArgs args)
|
||||
{
|
||||
SwitchSettings settingsWin = new SwitchSettings(_device);
|
||||
|
||||
_gtkApplication.Register(GLib.Cancellable.Current);
|
||||
_gtkApplication.AddWindow(settingsWin);
|
||||
|
||||
settingsWin.Show();
|
||||
}
|
||||
|
||||
|
@ -632,10 +624,6 @@ namespace Ryujinx.UI
|
|||
private void About_Pressed(object sender, EventArgs args)
|
||||
{
|
||||
AboutWindow aboutWin = new AboutWindow();
|
||||
|
||||
_gtkApplication.Register(GLib.Cancellable.Current);
|
||||
_gtkApplication.AddWindow(aboutWin);
|
||||
|
||||
aboutWin.Show();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue