From 96552dfcb531053f4a331c2c80ecf5d8cb2aaf36 Mon Sep 17 00:00:00 2001 From: 某莔 <seiuryuu@gmail.com> Date: 周四, 28 12月 2023 22:55:40 +0800 Subject: [PATCH] fix: NSVisualEffectView --- src/core/contexts/win32windowcontext_p.h | 33 ++++++++++++++++++++++++++++----- 1 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/core/contexts/win32windowcontext_p.h b/src/core/contexts/win32windowcontext_p.h index 672a033..ca64faf 100644 --- a/src/core/contexts/win32windowcontext_p.h +++ b/src/core/contexts/win32windowcontext_p.h @@ -1,15 +1,24 @@ #ifndef WIN32WINDOWCONTEXT_P_H #define WIN32WINDOWCONTEXT_P_H +// +// W A R N I N G !!! +// ----------------- +// +// This file is not part of the QWindowKit API. It is used purely as an +// implementation detail. This header file may change from version to +// version without notice, or may even be removed. +// + #include <QWKCore/qwindowkit_windows.h> #include <QWKCore/private/abstractwindowcontext_p.h> namespace QWK { - class QWK_CORE_EXPORT Win32WindowContext : public AbstractWindowContext { + class Win32WindowContext : public AbstractWindowContext { Q_OBJECT public: - Win32WindowContext(const QObject *host, const WindowItemDelegate *delegate); + Win32WindowContext(); ~Win32WindowContext() override; enum WindowPart { @@ -21,10 +30,21 @@ TitleBar, }; - public: - bool setup() override; + QString key() const override; + void virtual_hook(int id, void *data) override; + QVariant windowAttribute(const QString &key) const override; + + protected: + void winIdChanged() override; + bool windowAttributeChanged(const QString &key, const QVariant &attribute, + const QVariant &oldAttribute) override; + + public: bool windowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT *result); + + bool systemMenuHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, + LRESULT *result); // In order to perfectly apply Windows 11 Snap Layout into the Qt window, we need to // intercept and simulate most of the mouse events, so that the processing logic @@ -36,6 +56,9 @@ bool customWindowHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT *result); + bool nonClientCalcSizeHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, + LRESULT *result); + protected: WId windowId = 0; @@ -46,7 +69,7 @@ // WM_MOUSELEAVE. bool mouseLeaveBlocked = false; - bool centered = false; + bool initialCentered = false; }; } -- Gitblit v1.9.1