From 78f31c67d71ee743f022dd6f5930abae6f6d54f9 Mon Sep 17 00:00:00 2001
From: Yuhang Zhao <zhaoyuhang@rankyee.com>
Date: 周二, 19 12月 2023 16:43:17 +0800
Subject: [PATCH] update readme

---
 src/core/contexts/win32windowcontext.cpp |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp
index 8af6a3f..9b3e179 100644
--- a/src/core/contexts/win32windowcontext.cpp
+++ b/src/core/contexts/win32windowcontext.cpp
@@ -812,6 +812,26 @@
                 return;
             }
 
+            case RaiseWindowHook: {
+                if (m_windowHandle->windowStates() & Qt::WindowMinimized)
+                    m_windowHandle->showNormal();
+
+                auto hWnd = reinterpret_cast<HWND>(windowId);
+
+                // I have no idea what this does, but it works mostly
+                // https://www.codeproject.com/Articles/1724/Some-handy-dialog-box-tricks-tips-and-workarounds
+
+                ::AttachThreadInput(::GetWindowThreadProcessId(::GetForegroundWindow(), nullptr),
+                                    ::GetCurrentThreadId(), TRUE);
+
+                ::SetForegroundWindow(hWnd);
+                ::SetFocus(hWnd);
+
+                ::AttachThreadInput(GetWindowThreadProcessId(GetForegroundWindow(), nullptr),
+                                    GetCurrentThreadId(), FALSE);
+                return;
+            }
+
             case ShowSystemMenuHook: {
                 const auto &pos = *static_cast<const QPoint *>(data);
                 auto hWnd = reinterpret_cast<HWND>(windowId);

--
Gitblit v1.9.1