fix: don't attempt to scale windows opted out of scaling (#5400)

This commit is contained in:
nerix
2024-05-18 12:34:36 +02:00
committed by GitHub
parent 614a1c469f
commit 3ed1c0f7a4
4 changed files with 24 additions and 4 deletions
+20 -2
View File
@@ -931,9 +931,27 @@ void BaseWindow::updateScale()
this->setScale(scale);
for (auto *child : this->findChildren<BaseWidget *>())
BaseWindow::applyScaleRecursive(this, scale);
}
// NOLINTNEXTLINE(misc-no-recursion)
void BaseWindow::applyScaleRecursive(QObject *root, float scale)
{
for (QObject *obj : root->children())
{
child->setScale(scale);
auto *base = dynamic_cast<BaseWidget *>(obj);
if (base)
{
auto *window = dynamic_cast<BaseWindow *>(obj);
if (window)
{
// stop here, the window will get the event as well (via uiScale)
continue;
}
base->setScale(scale);
}
applyScaleRecursive(obj, scale);
}
}