From 9dcea027f16c4ce5852da3dfc8aca284c582bd7d Mon Sep 17 00:00:00 2001
From: sola.lu <sola.lu.greentest.com.cn>
Date: 周五, 06 6月 2025 18:19:18 +0800
Subject: [PATCH] 1.注释掉custom margin,解决程序放大后,遮盖窗口底部内容的问题。

---
 src/quick/quickwindowagent_win.cpp |   23 ++++++++++++-----------
 1 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/quick/quickwindowagent_win.cpp b/src/quick/quickwindowagent_win.cpp
index acfdd42..712e742 100644
--- a/src/quick/quickwindowagent_win.cpp
+++ b/src/quick/quickwindowagent_win.cpp
@@ -47,7 +47,11 @@
 
     bool BorderItem::shouldEnableEmulatedPainter() const {
 #  if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
-        auto api = window()->rendererInterface()->graphicsApi();
+        const QQuickWindow* win = window();
+        if (!win) {
+            return true;
+        }
+        auto api = win->rendererInterface()->graphicsApi();
         switch (api) {
             case QSGRendererInterface::OpenGL:
                 // FIXME: experimental, try to find the exact fixed version.
@@ -97,21 +101,18 @@
     BorderItem::~BorderItem() = default;
 
     void BorderItem::updateGeometry() {
-        setHeight(borderThickness());
+        const QQuickWindow* win = window();
+        if (!win) {
+            return;
+        }
+        setHeight(borderThickness() / win->effectiveDevicePixelRatio());
         setVisible(isNormalWindow());
     }
 
     void BorderItem::paint(QPainter *painter) {
         Q_UNUSED(painter)
         if (shouldEnableEmulatedPainter()) {
-            QRect rect(QPoint(0, 0), size().toSize());
-            QRegion region(rect);
-            void *args[] = {
-                painter,
-                &rect,
-                &region,
-            };
-            ctx->virtual_hook(AbstractWindowContext::DrawWindows10BorderHook_Emulated, args);
+            drawBorderEmulated(painter, QRect({0, 0}, size().toSize()));
         } else {
             needPaint = true;
         }
@@ -170,7 +171,7 @@
     void BorderItem::_q_afterSynchronizing() {
         if (needPaint) {
             needPaint = false;
-            drawBorder();
+            drawBorderNative();
         }
     }
 

--
Gitblit v1.9.1