[Workspaces] Bring Editor to foreground on hotkey (#34414)

This commit is contained in:
Stefan Markovic 2024-08-24 15:31:22 +02:00 committed by GitHub
parent ed23e7eeb6
commit 2abd1058fa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -75,7 +75,14 @@ public:
virtual void OnHotkeyEx() override
{
launch_editor();
if (is_process_running())
{
bring_process_to_front();
}
else
{
launch_editor();
}
}
// Return the configured status for the gpo policy for the module
@ -323,6 +330,29 @@ private:
m_hProcess = sei.hProcess;
}
void bring_process_to_front()
{
auto enum_windows = [](HWND hwnd, LPARAM param) -> BOOL {
HANDLE process_handle = reinterpret_cast<HANDLE>(param);
DWORD window_process_id = 0;
GetWindowThreadProcessId(hwnd, &window_process_id);
if (GetProcessId(process_handle) == window_process_id)
{
SetForegroundWindow(hwnd);
return FALSE;
}
return TRUE;
};
EnumWindows(enum_windows, (LPARAM)m_hProcess);
}
bool is_process_running() const
{
return WaitForSingleObject(m_hProcess, 0) == WAIT_TIMEOUT;
}
std::wstring app_name;
//contains the non localized key of the powertoy
std::wstring app_key;