From c837319767bb609c6ec806336e49a347c77b11d3 Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周五, 22 12月 2023 21:30:53 +0800 Subject: [PATCH] Add non-system-border option on Windows --- src/core/contexts/cocoawindowcontext.mm | 36 ++++++++++++++---------------------- 1 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/core/contexts/cocoawindowcontext.mm b/src/core/contexts/cocoawindowcontext.mm index c16c5a2..949681d 100644 --- a/src/core/contexts/cocoawindowcontext.mm +++ b/src/core/contexts/cocoawindowcontext.mm @@ -371,29 +371,8 @@ void CocoaWindowContext::virtual_hook(int id, void *data) { switch (id) { - case ShowSystemMenuHook: { - // TODO: mac system menu - return; - } - case SystemButtonAreaChangedHook: { // TODO: mac system button rect updated - return; - } - - case WindowAttributeChangedHook: { - auto args = static_cast<void **>(data); - const auto &key = *static_cast<const QString *>(args[0]); - const auto &newVar = *static_cast<const QVariant *>(args[1]); - const auto &oldVar = *static_cast<const QVariant *>(args[2]); - - if (key == QStringLiteral("no-system-buttons")) { - if (newVar.toBool()) { - // TODO: set off - } else { - // TODO: set on - } - } return; } @@ -403,7 +382,7 @@ AbstractWindowContext::virtual_hook(id, data); } - void CocoaWindowContext::winIdChanged(QWindow *oldWindow, bool isDestroyed) { + void CocoaWindowContext::winIdChanged() { // If the original window id is valid, remove all resources related if (windowId) { releaseWindowProxy(windowId); @@ -421,4 +400,17 @@ cocoaWindowEventFilter = std::make_unique<CocoaWindowEventFilter>(this, this); } + bool CocoaWindowContext::windowAttributeChanged(const QString &key, const QVariant &attribute, + const QVariant &oldAttribute) { + if (key == QStringLiteral("no-system-buttons")) { + if (attribute.toBool()) { + // TODO: set off + } else { + // TODO: set on + } + return true; + } + return false; + } + } -- Gitblit v1.9.1