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 | 17 +++++++++++++++-- 1 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/core/contexts/win32windowcontext_p.h b/src/core/contexts/win32windowcontext_p.h index 8906a51..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,11 +23,20 @@ TitleBar, }; + 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 @@ -37,8 +48,8 @@ bool customWindowHandler(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT *result); - static bool nonClientCalcSizeHandler(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; @@ -51,6 +62,8 @@ bool mouseLeaveBlocked = false; bool centered = false; + + std::unique_ptr<Win10BorderHandler> win10BorderHandler; }; } -- Gitblit v1.9.1