From 0586c98f90866e4bc9f0dfe73aefb0a07c56697e Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周二, 12 12月 2023 15:44:14 +0800 Subject: [PATCH] Add win10 border handler --- src/core/contexts/win32windowcontext_p.h | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/core/contexts/win32windowcontext_p.h b/src/core/contexts/win32windowcontext_p.h index 0d7b14b..b390c93 100644 --- a/src/core/contexts/win32windowcontext_p.h +++ b/src/core/contexts/win32windowcontext_p.h @@ -6,6 +6,8 @@ namespace QWK { + class Win10BorderHandler; + class QWK_CORE_EXPORT Win32WindowContext : public AbstractWindowContext { Q_OBJECT public: @@ -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; + Q_INVOKABLE bool needWin10BorderHandler() const; + Q_INVOKABLE void setWin10BorderHandler(Win10BorderHandler *handler); + + protected: + bool setupHost() 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 @@ -35,6 +47,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; @@ -47,6 +62,8 @@ bool mouseLeaveBlocked = false; bool centered = false; + + std::unique_ptr<Win10BorderHandler> win10BorderHandler; }; } -- Gitblit v1.9.1