Let sendApplicationPaletteChange() decide when it needs to exit early

Change-Id: I7a8e6c0b54d2a16a17b292a4102e05f743bcbe29
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This commit is contained in:
Tor Arne Vestbø 2019-06-25 18:42:59 +02:00
parent 87cedab94e
commit 04f5008f51
2 changed files with 9 additions and 5 deletions

View File

@ -4102,8 +4102,7 @@ void QGuiApplicationPrivate::notifyThemeChanged()
clearPalette();
initPalette();
emit qGuiApp->paletteChanged(*app_pal);
if (is_app_running && !is_app_closing)
sendApplicationPaletteChange();
sendApplicationPaletteChange();
}
if (!(applicationResourceFlags & ApplicationFontExplicitlySet)) {
const auto locker = qt_scoped_lock(applicationFontMutex);
@ -4118,6 +4117,9 @@ void QGuiApplicationPrivate::sendApplicationPaletteChange(bool toAllWidgets, con
Q_UNUSED(toAllWidgets)
Q_UNUSED(className)
if (!is_app_running || is_app_closing)
return;
QEvent event(QEvent::ApplicationPaletteChange);
QGuiApplication::sendEvent(QGuiApplication::instance(), &event);
}

View File

@ -1390,10 +1390,9 @@ void QApplicationPrivate::setPalette_helper(const QPalette &palette, const char*
hash->insert(className, pal);
}
if (QApplicationPrivate::is_app_running && !QApplicationPrivate::is_app_closing) {
// Send ApplicationPaletteChange to qApp itself, and to the widgets.
if (qApp)
qApp->d_func()->sendApplicationPaletteChange(all, className);
}
if (!className && (!QApplicationPrivate::sys_pal || !palette.isCopyOf(*QApplicationPrivate::sys_pal))) {
QCoreApplication::setAttribute(Qt::AA_SetPalette);
@ -4431,6 +4430,9 @@ void QApplicationPrivate::notifyThemeChanged()
void QApplicationPrivate::sendApplicationPaletteChange(bool toAllWidgets, const char *className)
{
if (!is_app_running || is_app_closing)
return;
QGuiApplicationPrivate::sendApplicationPaletteChange();
QEvent event(QEvent::ApplicationPaletteChange);