CustomFrame: Added a recursion guard

This commit is contained in:
Sergio Martins
2021-02-18 18:32:14 +00:00
parent 1afcf21529
commit 3874e2d886
2 changed files with 5 additions and 1 deletions

View File

@@ -23,6 +23,7 @@
#include <QGuiApplication>
#include <QScreen>
#include <QWindow>
#include <QScopedValueRollback>
#if defined(Q_OS_WIN)
# include <QtGui/private/qhighdpiscaling_p.h>
@@ -606,9 +607,11 @@ void CustomFrameHelper::applyCustomFrame(QWindow *window)
bool CustomFrameHelper::nativeEventFilter(const QByteArray &eventType, void *message,
Qt5Qt6Compat::qintptr *result)
{
if (m_shouldUseCustomFrameFunc == nullptr)
if (m_shouldUseCustomFrameFunc == nullptr || m_recursionGuard)
return false;
QScopedValueRollback<bool> guard(m_recursionGuard, true);
#ifdef Q_OS_WIN
if (m_inDtor || !KDDockWidgets::usesAeroSnapWithCustomDecos())
return false;