From 573488a6fec17a9fc71e4d8b0a4741c107ab4ef8 Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周一, 11 12月 2023 16:35:29 +0800
Subject: [PATCH] Add virtual hook

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

diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp
index c1f3dbd..2168e44 100644
--- a/src/core/contexts/win32windowcontext.cpp
+++ b/src/core/contexts/win32windowcontext.cpp
@@ -5,6 +5,7 @@
 #include <QtCore/QHash>
 #include <QtCore/QScopeGuard>
 #include <QtGui/QGuiApplication>
+#include <QtGui/QPainter>
 
 #include <QtCore/private/qsystemlibrary_p.h>
 #include <QtGui/private/qhighdpiscaling_p.h>
@@ -683,6 +684,24 @@
                                 m_delegate->isHostSizeFixed(m_host));
                 return;
             }
+            case NeedsDrawBordersHook: {
+                auto &result = *reinterpret_cast<bool *>(data);
+                result = isWin10OrGreater() && !isWin11OrGreater();
+                return;
+            }
+            case DrawBordersHook: {
+                auto a = reinterpret_cast<void **>(data);
+                auto &painter = *reinterpret_cast<QPainter *>(a[0]);
+                auto &rect = *reinterpret_cast<const QRect *>(a[1]);
+                auto &region = *reinterpret_cast<const QRegion *>(a[2]);
+
+                qDebug() << "paint" << &painter << rect << region;
+
+                // TODO: Draw border
+                // ...
+
+                break;
+            }
             default:
                 break;
         }

--
Gitblit v1.9.1