From d372158dde5161d1fa2ad1e8d8026f7906d369f3 Mon Sep 17 00:00:00 2001 From: q234rty Date: Sat, 16 Dec 2023 18:04:15 +0800 Subject: Trigger less QEvent::ApplicationPaletteChange The event seems to be very expensive on certain platform theme plugins. Fixes #1639 --- src/MainWindow.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/MainWindow.cpp') diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index b7834cba..a4a0eff0 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -201,9 +201,14 @@ NhekoFixupPaletteEventFilter::eventFilter(QObject *obj, QEvent *event) // reason?!? if (event->type() == QEvent::ChildAdded && obj->metaObject()->className() == QStringLiteral("QQuickRootItem")) { + QSet newWindows; for (const auto window : QGuiApplication::topLevelWindows()) { + newWindows.insert(window); + if (m_postedWindows.contains(window)) + continue; QGuiApplication::postEvent(window, new QEvent(QEvent::ApplicationPaletteChange)); } + m_postedWindows.swap(newWindows); } return false; } -- cgit 1.5.1