forked from quickshell/quickshell
fix: allow reloadable objects inside of proxy windows
This commit is contained in:
parent
d967d56d3b
commit
5e58f0ba9f
|
@ -10,6 +10,7 @@
|
||||||
#include <qwindow.h>
|
#include <qwindow.h>
|
||||||
|
|
||||||
#include "region.hpp"
|
#include "region.hpp"
|
||||||
|
#include "reload.hpp"
|
||||||
|
|
||||||
ProxyWindowBase::~ProxyWindowBase() {
|
ProxyWindowBase::~ProxyWindowBase() {
|
||||||
if (this->window != nullptr) {
|
if (this->window != nullptr) {
|
||||||
|
@ -28,10 +29,18 @@ void ProxyWindowBase::onReload(QObject* oldInstance) {
|
||||||
|
|
||||||
this->setupWindow();
|
this->setupWindow();
|
||||||
|
|
||||||
|
for (auto* child: this->pendingChildren) {
|
||||||
|
Reloadable::reloadRecursive(child, oldInstance);
|
||||||
|
}
|
||||||
|
|
||||||
auto backer = this->dataBacker();
|
auto backer = this->dataBacker();
|
||||||
for (auto* child: this->pendingChildren) {
|
for (auto* child: this->pendingChildren) {
|
||||||
|
// Reparent QQuickItems to the content element,
|
||||||
|
// while leaving QObjects parented to the proxy window.
|
||||||
|
if (qobject_cast<QQuickItem*>(child) != nullptr) {
|
||||||
backer.append(&backer, child);
|
backer.append(&backer, child);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this->pendingChildren.clear();
|
this->pendingChildren.clear();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue