mirror of
https://github.com/microsoft/PowerToys.git
synced 2024-11-27 14:59:16 +08:00
[Workspaces] Bring Editor to foreground on hotkey (#34414)
This commit is contained in:
parent
ed23e7eeb6
commit
2abd1058fa
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user