From 8b72eabae325c34d8eab1544203993015cc91741 Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周一, 18 12月 2023 00:54:51 +0800 Subject: [PATCH] Add win32 winIdChange workaround --- src/core/contexts/win32windowcontext_p.h | 21 ++++++++++++++++++--- 1 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/core/contexts/win32windowcontext_p.h b/src/core/contexts/win32windowcontext_p.h index 0d7b14b..3d2649e 100644 --- a/src/core/contexts/win32windowcontext_p.h +++ b/src/core/contexts/win32windowcontext_p.h @@ -6,8 +6,10 @@ namespace QWK { - class QWK_CORE_EXPORT Win32WindowContext : public AbstractWindowContext { + class Win32WindowContext : public AbstractWindowContext { Q_OBJECT + Q_PROPERTY(bool needBorderPainter READ needBorderPainter FINAL) + Q_PROPERTY(int borderThickness READ borderThickness FINAL) public: Win32WindowContext(); ~Win32WindowContext() override; @@ -21,10 +23,20 @@ TitleBar, }; - public: - bool setup(QObject *host, WindowItemDelegate *delegate) override; + QString key() const override; + void virtual_hook(int id, void *data) override; + bool needBorderPainter() const; + int borderThickness() const; + + protected: + void winIdChanged(QWindow *oldWindow, bool destroyed) 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 +48,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; -- Gitblit v1.9.1