From acece00ae291d143c3b712a98814a64b9dd43f14 Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周一, 11 12月 2023 17:12:41 +0800 Subject: [PATCH] Remove VersionHelper --- src/core/contexts/win32windowcontext.cpp | 29 +++++++++++++++++++++++------ 1 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/core/contexts/win32windowcontext.cpp b/src/core/contexts/win32windowcontext.cpp index c1f3dbd..07ab1d2 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> @@ -21,7 +22,6 @@ #include <shellscalingapi.h> #include <dwmapi.h> #include <timeapi.h> -#include <versionhelpers.h> #include "nativeeventfilter.h" @@ -194,23 +194,22 @@ } static inline bool isWin8OrGreater() { - static const bool result = ::IsWindows8OrGreater(); + static const bool result = IsWindows8OrGreater_Real(); return result; } static inline bool isWin8Point1OrGreater() { - static const bool result = ::IsWindows8Point1OrGreater(); + static const bool result = IsWindows8Point1OrGreater_Real(); return result; } static inline bool isWin10OrGreater() { - static const bool result = ::IsWindows10OrGreater(); + static const bool result = IsWindows10OrGreater_Real(); return result; } static inline bool isWin11OrGreater() { - static const bool result = ::IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WIN10), - LOBYTE(_WIN32_WINNT_WIN10), 22000); + static const bool result = IsWindows11OrGreater_Real(); return result; } @@ -683,6 +682,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 ®ion = *reinterpret_cast<const QRegion *>(a[2]); + + qDebug() << "paint" << &painter << rect << region; + + // TODO: Draw border + // ... + + break; + } default: break; } -- Gitblit v1.9.1