From 9cbd5abd96429605da1d8a49ae9f58e214acd904 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Wed, 27 Mar 2024 02:38:54 -0700 Subject: [PATCH] core/window: ensure window cannot be made visible during reload This causes duplicate windows. --- src/core/proxywindow.cpp | 4 +++- src/core/proxywindow.hpp | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/core/proxywindow.cpp b/src/core/proxywindow.cpp index bc15c58..f798ed6 100644 --- a/src/core/proxywindow.cpp +++ b/src/core/proxywindow.cpp @@ -51,6 +51,8 @@ void ProxyWindowBase::onReload(QObject* oldInstance) { this->connectWindow(); this->completeWindow(); + this->reloadComplete = true; + emit this->windowConnected(); this->postCompleteWindow(); @@ -164,7 +166,7 @@ bool ProxyWindowBase::isVisibleDirect() const { void ProxyWindowBase::setVisible(bool visible) { this->mVisible = visible; - this->setVisibleDirect(visible); + if (this->reloadComplete) this->setVisibleDirect(visible); } void ProxyWindowBase::setVisibleDirect(bool visible) { diff --git a/src/core/proxywindow.hpp b/src/core/proxywindow.hpp index f2c75b6..14ee09d 100644 --- a/src/core/proxywindow.hpp +++ b/src/core/proxywindow.hpp @@ -129,6 +129,7 @@ protected: PendingRegion* mMask = nullptr; QQuickWindow* window = nullptr; QQuickItem* mContentItem = nullptr; + bool reloadComplete = false; private: void updateMask();