Merge pull request #1697 from DGP-Studio/opt/launch_game_activation

This commit is contained in:
DismissedLight
2024-06-05 20:35:18 +08:00
committed by GitHub
2 changed files with 24 additions and 17 deletions

View File

@@ -96,25 +96,31 @@ internal sealed partial class AppActivation : IAppActivation, IAppActivationActi
await taskContext.SwitchToMainThreadAsync();
if (currentWindowReference.Window is null)
switch (currentWindowReference.Window)
{
currentWindowReference.Window = serviceProvider.GetRequiredService<LaunchGameWindow>();
return;
}
case null:
LaunchGameWindow launchGameWindow = serviceProvider.GetRequiredService<LaunchGameWindow>();
currentWindowReference.Window = launchGameWindow;
if (currentWindowReference.Window is MainWindow)
{
await serviceProvider
.GetRequiredService<INavigationService>()
.NavigateAsync<View.Page.LaunchGamePage>(INavigationAwaiter.Default, true)
.ConfigureAwait(false);
launchGameWindow.SwitchTo();
launchGameWindow.BringToForeground();
return;
return;
}
else
{
// We have a non-Main Window, just exit current process anyway
Process.GetCurrentProcess().Kill();
case MainWindow:
await serviceProvider
.GetRequiredService<INavigationService>()
.NavigateAsync<View.Page.LaunchGamePage>(INavigationAwaiter.Default, true)
.ConfigureAwait(false);
return;
case LaunchGameWindow currentLaunchGameWindow:
currentLaunchGameWindow.SwitchTo();
currentLaunchGameWindow.BringToForeground();
return;
default:
Process.GetCurrentProcess().Kill();
return;
}
}

View File

@@ -63,7 +63,8 @@ internal static class WindowExtension
{
ShowWindow(hwnd, SHOW_WINDOW_CMD.SW_SHOW);
}
else if (IsIconic(hwnd))
if (IsIconic(hwnd))
{
ShowWindow(hwnd, SHOW_WINDOW_CMD.SW_RESTORE);
}