From c3ef42dad254f6d04cab521c9ae619a46bb84f7a Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: ćšć, 21 11æ 2024 21:17:32 +0800 Subject: [PATCH] Fix #151 and a crash bug related to sub frameless window --- src/widgets/widgetwindowagent.cpp | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/widgets/widgetwindowagent.cpp b/src/widgets/widgetwindowagent.cpp index 6ba46dd..ea6b22c 100644 --- a/src/widgets/widgetwindowagent.cpp +++ b/src/widgets/widgetwindowagent.cpp @@ -56,13 +56,19 @@ } w->setAttribute(Qt::WA_DontCreateNativeAncestors); - w->setAttribute(Qt::WA_NativeWindow); + w->setAttribute(Qt::WA_NativeWindow); // Create new window id d->setup(w, new WidgetItemDelegate()); d->hostWidget = w; #if defined(Q_OS_WINDOWS) && QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDERS) d->setupWindows10BorderWorkaround(); +#endif + +#ifdef Q_OS_WINDOWS + if (!windowAttribute(QStringLiteral("windows-system-border-enabled")).toBool()) { + w->setWindowFlag(Qt::FramelessWindowHint); + } #endif return true; } @@ -123,7 +129,7 @@ You're supposed to make sure that the specified widget \a w is a child or descendant of the title bar widget. */ - void WidgetWindowAgent::setHitTestVisible(const QWidget *w, bool visible) { + void WidgetWindowAgent::setHitTestVisible(QWidget *w, bool visible) { Q_D(WidgetWindowAgent); d->context->setHitTestVisible(w, visible); } -- Gitblit v1.9.1