From c4a7bc80d0ca0b1b87418515ab4836f3d4944ae0 Mon Sep 17 00:00:00 2001 From: Zhao Yuhang <2546789017@qq.com> Date: Sat, 21 Oct 2023 18:19:56 +0800 Subject: [PATCH] fix crash --- src/quick/framelessquickhelper.cpp | 7 +++++-- src/widgets/framelesswidgetshelper.cpp | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/quick/framelessquickhelper.cpp b/src/quick/framelessquickhelper.cpp index 77f03246..e4cf14eb 100644 --- a/src/quick/framelessquickhelper.cpp +++ b/src/quick/framelessquickhelper.cpp @@ -145,7 +145,10 @@ FramelessQuickHelperPrivate::FramelessQuickHelperPrivate(FramelessQuickHelper *q connect(q_ptr, &FramelessQuickHelper::windowChanged, q_ptr, &FramelessQuickHelper::windowChanged2); } -FramelessQuickHelperPrivate::~FramelessQuickHelperPrivate() = default; +FramelessQuickHelperPrivate::~FramelessQuickHelperPrivate() +{ + detach(); +} FramelessQuickHelperPrivate *FramelessQuickHelperPrivate::get(FramelessQuickHelper *pub) { @@ -427,7 +430,7 @@ void FramelessQuickHelperPrivate::doRepaintAllChildren() } if (!((window->windowState() & (Qt::WindowMinimized | Qt::WindowMaximized | Qt::WindowFullScreen)) || q->isWindowFixedSize())) { const QSize originalSize = window->size(); - static constexpr const auto margins = QMargins{ 10, 10, 10, 10 }; + static constexpr const auto margins = QMargins{ 1, 1, 1, 1 }; window->resize(originalSize.shrunkBy(margins)); window->resize(originalSize.grownBy(margins)); window->resize(originalSize); diff --git a/src/widgets/framelesswidgetshelper.cpp b/src/widgets/framelesswidgetshelper.cpp index d6dd1b65..cb32ffdf 100644 --- a/src/widgets/framelesswidgetshelper.cpp +++ b/src/widgets/framelesswidgetshelper.cpp @@ -186,7 +186,7 @@ static inline void forceWidgetRepaint(QWidget *widget) // A widget will most likely repaint itself if it's size is changed. if (!isWidgetFixedSize(widget)) { const QSize originalSize = widget->size(); - static constexpr const auto margins = QMargins{10, 10, 10, 10}; + static constexpr const auto margins = QMargins{ 1, 1, 1, 1 }; widget->resize(originalSize.shrunkBy(margins)); widget->resize(originalSize.grownBy(margins)); widget->resize(originalSize); @@ -216,7 +216,10 @@ FramelessWidgetsHelperPrivate::FramelessWidgetsHelperPrivate(FramelessWidgetsHel connect(&repaintTimer, &QTimer::timeout, this, &FramelessWidgetsHelperPrivate::doRepaintAllChildren); } -FramelessWidgetsHelperPrivate::~FramelessWidgetsHelperPrivate() = default; +FramelessWidgetsHelperPrivate::~FramelessWidgetsHelperPrivate() +{ + detach(); +} FramelessWidgetsHelperPrivate *FramelessWidgetsHelperPrivate::get(FramelessWidgetsHelper *pub) {