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 | 13 ++++++++++--- 1 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/widgets/widgetwindowagent.cpp b/src/widgets/widgetwindowagent.cpp index 27ff365..ea6b22c 100644 --- a/src/widgets/widgetwindowagent.cpp +++ b/src/widgets/widgetwindowagent.cpp @@ -1,4 +1,5 @@ -// Copyright (C) 2023-2024 Stdware Collections +// Copyright (C) 2023-2024 Stdware Collections (https://www.github.com/stdware) +// Copyright (C) 2021-2023 wangwenx190 (Yuhang Zhao) // SPDX-License-Identifier: Apache-2.0 #include "widgetwindowagent.h" @@ -55,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; } @@ -122,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