core/window: run polish in onExposed instead of polishItems

Fixes hyprland visible regions created before window expose.
This commit is contained in:
outfoxxed 2025-07-13 22:27:44 -07:00
parent cee1f5837e
commit 478aa2bda1
Signed by untrusted user: outfoxxed
GPG key ID: 4C88A185FB89301E
2 changed files with 6 additions and 5 deletions

View file

@ -85,7 +85,7 @@ void ProxyWindowBase::onReload(QObject* oldInstance) {
if (wasVisible && this->isVisibleDirect()) {
emit this->backerVisibilityChanged();
this->runLints();
this->onExposed();
}
}
@ -195,7 +195,7 @@ void ProxyWindowBase::connectWindow() {
QObject::connect(this->window, &QWindow::heightChanged, this, &ProxyWindowBase::heightChanged);
QObject::connect(this->window, &QWindow::screenChanged, this, &ProxyWindowBase::screenChanged);
QObject::connect(this->window, &QQuickWindow::colorChanged, this, &ProxyWindowBase::colorChanged);
QObject::connect(this->window, &ProxiedWindow::exposed, this, &ProxyWindowBase::runLints);
QObject::connect(this->window, &ProxiedWindow::exposed, this, &ProxyWindowBase::onExposed);
QObject::connect(this->window, &ProxiedWindow::devicePixelRatioChanged, this, &ProxyWindowBase::devicePixelRatioChanged);
// clang-format on
}
@ -283,10 +283,11 @@ void ProxyWindowBase::polishItems() {
// This hack manually polishes the item tree right before showing the window so it will
// always be created with the correct size.
QQuickWindowPrivate::get(this->window)->polishItems();
this->onPolished();
}
void ProxyWindowBase::runLints() {
void ProxyWindowBase::onExposed() {
this->onPolished();
if (!this->ranLints) {
qs::debug::lintItemTree(this->mContentItem);
this->ranLints = true;

View file

@ -166,7 +166,7 @@ protected slots:
void onMaskDestroyed();
void onScreenDestroyed();
virtual void onPolished();
void runLints();
void onExposed();
protected:
bool mVisible = true;