From 7559eee8c2d4fdcb14d4dc36f69c5e3352244e99 Mon Sep 17 00:00:00 2001 From: Peter Repukat Date: Thu, 21 Oct 2021 19:54:41 +0200 Subject: [PATCH] Cleanup --- GlosSITarget/SteamTarget.cpp | 27 ++++++++++----------------- GlosSITarget/SteamTarget.h | 9 ++++++++- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/GlosSITarget/SteamTarget.cpp b/GlosSITarget/SteamTarget.cpp index cffe1e4..8e65ad5 100644 --- a/GlosSITarget/SteamTarget.cpp +++ b/GlosSITarget/SteamTarget.cpp @@ -24,26 +24,12 @@ limitations under the License. #include #include -#include - -#ifdef _WIN32 -subhook::Hook getFgWinHook; -static HWND target_hwnd = nullptr; - -HWND keepForegroundWindow() -{ - return target_hwnd; -} - -#endif SteamTarget::SteamTarget(int argc, char* argv[]) : window_([this] { run_ = false; }, getScreenshotHotkey()), - detector_([this](bool overlay_open) { onOverlayChanged(overlay_open); }), target_window_handle_(window_.getSystemHandle()) + detector_([this](bool overlay_open) { onOverlayChanged(overlay_open); }) { -#ifdef _WIN32 - target_hwnd = target_window_handle_; -#endif + target_window_handle_ = window_.getSystemHandle(); } int SteamTarget::run() @@ -216,7 +202,7 @@ void SteamTarget::keepControllerConfig(bool keep) #ifdef _WIN32 if (keep && !getFgWinHook.IsInstalled()) { spdlog::debug("Hooking GetForegroudnWindow (in own process)"); - getFgWinHook.Install(&GetForegroundWindow, &keepForegroundWindow, subhook::HookFlags::HookFlag64BitOffset); + getFgWinHook.Install(&GetForegroundWindow, &keepFgWindowHookFn, subhook::HookFlags::HookFlag64BitOffset); if (!getFgWinHook.IsInstalled()) { spdlog::error("Couldn't install GetForegroundWindow hook!"); } @@ -231,6 +217,13 @@ void SteamTarget::keepControllerConfig(bool keep) #endif } +#ifdef _WIN32 +HWND SteamTarget::keepFgWindowHookFn() +{ + return target_window_handle_; +} +#endif + void SteamTarget::overlayHotkeyWorkaround() { static bool pressed = false; diff --git a/GlosSITarget/SteamTarget.h b/GlosSITarget/SteamTarget.h index 78db9a8..e8aa417 100644 --- a/GlosSITarget/SteamTarget.h +++ b/GlosSITarget/SteamTarget.h @@ -22,6 +22,7 @@ limitations under the License. #ifdef _WIN32 #include "HidHide.h" #include "InputRedirector.h" +#include #endif #include @@ -46,6 +47,12 @@ class SteamTarget { // Keep controllerConfig even is window is switched. // On Windoze hooking "GetForeGroundWindow" is enough; void keepControllerConfig(bool keep); + +#ifdef _WIN32 + static HWND keepFgWindowHookFn(); + static inline subhook::Hook getFgWinHook; +#endif + /* * Run once per frame * detects steam configured overlay hotkey, and simulates key presses to window @@ -64,7 +71,7 @@ class SteamTarget { TargetWindow window_; OverlayDetector detector_; WindowHandle last_foreground_window_ = nullptr; - WindowHandle target_window_handle_; + static inline WindowHandle target_window_handle_ = nullptr; static constexpr std::wstring_view user_data_path_ = L"/userdata/"; static constexpr std::wstring_view config_file_name_ = L"/config/localconfig.vdf";