Parcourir la source

Ava: Fix regressions by rewriting CheckLaunchState (#5728)

Ac_K il y a 2 ans
Parent
commit
7f2fb049f5
1 fichiers modifiés avec 26 ajouts et 12 suppressions
  1. 26 12
      src/Ryujinx.Ava/UI/Windows/MainWindow.axaml.cs

+ 26 - 12
src/Ryujinx.Ava/UI/Windows/MainWindow.axaml.cs

@@ -265,32 +265,46 @@ namespace Ryujinx.Ava.UI.Windows
 
         private void CheckLaunchState()
         {
-            if (ShowKeyErrorOnLoad)
-            {
-                ShowKeyErrorOnLoad = false;
-
-                UserErrorDialog.ShowUserErrorDialog(UserError.NoKeys).Wait();
-            }
-
             if (OperatingSystem.IsLinux() && LinuxHelper.VmMaxMapCount < LinuxHelper.RecommendedVmMaxMapCount)
             {
                 Logger.Warning?.Print(LogClass.Application, $"The value of vm.max_map_count is lower than {LinuxHelper.RecommendedVmMaxMapCount}. ({LinuxHelper.VmMaxMapCount})");
 
                 if (LinuxHelper.PkExecPath is not null)
                 {
-                    ShowVmMaxMapCountDialog().Wait();
+                    Dispatcher.UIThread.Post(async () =>
+                    {
+                        if (OperatingSystem.IsLinux())
+                        {
+                            await ShowVmMaxMapCountDialog();
+                        }
+                    });
                 }
                 else
                 {
-                    ShowVmMaxMapCountWarning().Wait();
+                    Dispatcher.UIThread.Post(async () =>
+                    {
+                        if (OperatingSystem.IsLinux())
+                        {
+                            await ShowVmMaxMapCountWarning();
+                        }
+                    });
                 }
             }
 
-            if (_deferLoad)
+            if (!ShowKeyErrorOnLoad)
+            {
+                if (_deferLoad)
+                {
+                    _deferLoad = false;
+
+                    ViewModel.LoadApplication(_launchPath, _startFullscreen).Wait();
+                }
+            }
+            else
             {
-                _deferLoad = false;
+                ShowKeyErrorOnLoad = false;
 
-                ViewModel.LoadApplication(_launchPath, _startFullscreen).Wait();
+                Dispatcher.UIThread.Post(async () => await UserErrorDialog.ShowUserErrorDialog(UserError.NoKeys));
             }
 
             if (ConfigurationState.Instance.CheckUpdatesOnStart.Value && Updater.CanUpdate(false))