[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

View File

@@ -74,9 +74,16 @@ public:
}
virtual void OnHotkeyEx() override
{
if (is_process_running())
{
bring_process_to_front();
}
else
{
launch_editor();
}
}
// Return the configured status for the gpo policy for the module
virtual powertoys_gpo::gpo_rule_configured_t gpo_policy_enabled_configuration() override
@@ -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;