From 478aa2bda1aa3f451232a998bc3731057e0aef09 Mon Sep 17 00:00:00 2001 From: outfoxxed Date: Sun, 13 Jul 2025 22:27:44 -0700 Subject: [PATCH] core/window: run polish in onExposed instead of polishItems Fixes hyprland visible regions created before window expose. --- src/window/proxywindow.cpp | 9 +++++---- src/window/proxywindow.hpp | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/window/proxywindow.cpp b/src/window/proxywindow.cpp index 468820b7..56d250cf 100644 --- a/src/window/proxywindow.cpp +++ b/src/window/proxywindow.cpp @@ -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; diff --git a/src/window/proxywindow.hpp b/src/window/proxywindow.hpp index 1d075166..3fbc08e1 100644 --- a/src/window/proxywindow.hpp +++ b/src/window/proxywindow.hpp @@ -166,7 +166,7 @@ protected slots: void onMaskDestroyed(); void onScreenDestroyed(); virtual void onPolished(); - void runLints(); + void onExposed(); protected: bool mVisible = true;