From 2d2fc799bc698ebf7e7c8bcc394366d0d7bf071b Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周二, 20 2月 2024 18:18:39 +0800 Subject: [PATCH] Partially finish the bug after window close and reshow --- src/widgets/widgetwindowagent_p.h | 34 ++++++++++++++++++++++++++++------ 1 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/widgets/widgetwindowagent_p.h b/src/widgets/widgetwindowagent_p.h index eb1d96d..1382dd5 100644 --- a/src/widgets/widgetwindowagent_p.h +++ b/src/widgets/widgetwindowagent_p.h @@ -1,15 +1,27 @@ +// Copyright (C) 2023-2024 Stdware Collections (https://www.github.com/stdware) +// Copyright (C) 2021-2023 wangwenx190 (Yuhang Zhao) +// SPDX-License-Identifier: Apache-2.0 + #ifndef WIDGETWINDOWAGENTPRIVATE_H #define WIDGETWINDOWAGENTPRIVATE_H -#include <QWKCore/private/corewindowagent_p.h> +// +// W A R N I N G !!! +// ----------------- +// +// This file is not part of the QWindowKit API. It is used purely as an +// implementation detail. This header file may change from version to +// version without notice, or may even be removed. +// + +#include <QWKCore/qwkconfig.h> +#include <QWKCore/private/windowagentbase_p.h> #include <QWKWidgets/widgetwindowagent.h> namespace QWK { - class WidgetWindowAgentPrivate : public CoreWindowAgentPrivate { - Q_DISABLE_COPY(WidgetWindowAgentPrivate) + class WidgetWindowAgentPrivate : public WindowAgentBasePrivate { Q_DECLARE_PUBLIC(WidgetWindowAgent) - public: WidgetWindowAgentPrivate(); ~WidgetWindowAgentPrivate(); @@ -17,9 +29,19 @@ void init(); // Host - QWidget *host{}; + QWidget *hostWidget{}; + +#ifdef Q_OS_MAC + QWidget *systemButtonAreaWidget{}; + std::unique_ptr<QObject> systemButtonAreaWidgetEventFilter; +#endif + +#if defined(Q_OS_WINDOWS) && QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDERS) + void setupWindows10BorderWorkaround(); + std::unique_ptr<QObject> borderHandler; +#endif }; } -#endif // WIDGETWINDOWAGENTPRIVATE_H \ No newline at end of file +#endif // WIDGETWINDOWAGENTPRIVATE_H -- Gitblit v1.9.1