[Workspaces] Close editor when PT runner exited. (#34477)

* [Workspaces] Close editor when PT runner exited.

* removed trailing whitespace
This commit is contained in:
Seraphima Zykova 2024-08-29 13:07:38 +02:00 committed by GitHub
parent 6408898cbe
commit d42cd4bd3b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 3 deletions

View File

@ -57,6 +57,20 @@ namespace WorkspacesEditor
return;
}
var args = e?.Args;
int powerToysRunnerPid;
if (args?.Length > 0)
{
_ = int.TryParse(args[0], out powerToysRunnerPid);
Logger.LogInfo($"WorkspacesEditor started from the PowerToys Runner. Runner pid={powerToysRunnerPid}");
RunnerHelper.WaitForPowerToysRunner(powerToysRunnerPid, () =>
{
Logger.LogInfo("PowerToys Runner exited. Exiting WorkspacesEditor");
Dispatcher.Invoke(Shutdown);
});
}
ThemeManager = new ThemeManager(this);
if (_mainViewModel == null)

View File

@ -309,15 +309,15 @@ private:
{
Logger::trace(L"Starting Workspaces Editor");
/*unsigned long powertoys_pid = GetCurrentProcessId();
unsigned long powertoys_pid = GetCurrentProcessId();
std::wstring executable_args = L"";
executable_args.append(std::to_wstring(powertoys_pid));*/
executable_args.append(std::to_wstring(powertoys_pid));
SHELLEXECUTEINFOW sei{ sizeof(sei) };
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpFile = L"PowerToys.WorkspacesEditor.exe";
sei.nShow = SW_SHOWNORMAL;
//sei.lpParameters = executable_args.data();
sei.lpParameters = executable_args.data();
if (ShellExecuteExW(&sei))
{
Logger::trace("Successfully started the Workspaces Editor");