core/window: fix attached property prior to backer creation
This commit is contained in:
parent
e48af44607
commit
6367b56f55
|
@ -26,6 +26,7 @@ ProxyWindowBase::ProxyWindowBase(QObject* parent)
|
|||
, mContentItem(new QQuickItem()) {
|
||||
QQmlEngine::setObjectOwnership(this->mContentItem, QQmlEngine::CppOwnership);
|
||||
this->mContentItem->setParent(this);
|
||||
this->mContentItem->setProperty("__qs_proxywindow", QVariant::fromValue(this));
|
||||
|
||||
// clang-format off
|
||||
QObject::connect(this, &ProxyWindowBase::widthChanged, this, &ProxyWindowBase::onWidthChanged);
|
||||
|
@ -124,8 +125,6 @@ void ProxyWindowBase::connectWindow() {
|
|||
generation->registerIncubationController(this->window->incubationController());
|
||||
}
|
||||
|
||||
this->window->setProperty("__qs_proxywindow", QVariant::fromValue(this));
|
||||
|
||||
// clang-format off
|
||||
QObject::connect(this->window, &QWindow::visibilityChanged, this, &ProxyWindowBase::visibleChanged);
|
||||
QObject::connect(this->window, &QWindow::xChanged, this, &ProxyWindowBase::xChanged);
|
||||
|
|
|
@ -7,11 +7,16 @@
|
|||
#include "proxywindow.hpp"
|
||||
|
||||
QsWindowAttached* WindowInterface::qmlAttachedProperties(QObject* object) {
|
||||
auto* item = qobject_cast<QQuickItem*>(object);
|
||||
if (!item) return nullptr;
|
||||
auto* window = item->window();
|
||||
if (!window) return nullptr;
|
||||
auto* proxy = window->property("__qs_proxywindow").value<ProxyWindowBase*>();
|
||||
auto* visualRoot = qobject_cast<QQuickItem*>(object);
|
||||
|
||||
ProxyWindowBase* proxy = nullptr;
|
||||
while (visualRoot != nullptr) {
|
||||
proxy = visualRoot->property("__qs_proxywindow").value<ProxyWindowBase*>();
|
||||
|
||||
if (proxy) break;
|
||||
visualRoot = visualRoot->parentItem();
|
||||
};
|
||||
|
||||
if (!proxy) return nullptr;
|
||||
|
||||
auto v = proxy->property("__qs_window_attached");
|
||||
|
|
Loading…
Reference in a new issue