diff --git a/src/private/FloatingWindow.cpp b/src/private/FloatingWindow.cpp index 0e05ba1a..a3d27d8c 100644 --- a/src/private/FloatingWindow.cpp +++ b/src/private/FloatingWindow.cpp @@ -25,6 +25,7 @@ #include #include #include +#include #if defined(Q_OS_WIN) # include @@ -341,6 +342,10 @@ void FloatingWindow::onVisibleFrameCountChanged(int count) void FloatingWindow::updateTitleBarVisibility() { + if (m_updatingTitleBarVisibility) + return; // Break recursion + + QScopedValueRollback guard(m_updatingTitleBarVisibility, true); updateTitleAndIcon(); bool visible = true; diff --git a/src/private/FloatingWindow_p.h b/src/private/FloatingWindow_p.h index a5400191..36191873 100644 --- a/src/private/FloatingWindow_p.h +++ b/src/private/FloatingWindow_p.h @@ -145,6 +145,7 @@ private: bool m_disableSetVisible = false; bool m_deleteScheduled = false; bool m_inDtor = false; + bool m_updatingTitleBarVisibility = false; QMetaObject::Connection m_layoutDestroyedConnection; QAbstractNativeEventFilter *m_nchittestFilter = nullptr; };