diff options
Diffstat (limited to 'src/gui/kernel/qguiapplication.cpp')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 5757e67cfe..680c69a978 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -3289,12 +3289,8 @@ QPalette QGuiApplication::palette() */ void QGuiApplication::setPalette(const QPalette &pal) { - if (QGuiApplicationPrivate::app_pal && pal.isCopyOf(*QGuiApplicationPrivate::app_pal)) + if (!QGuiApplicationPrivate::setPalette(pal)) return; - if (!QGuiApplicationPrivate::app_pal) - QGuiApplicationPrivate::app_pal = new QPalette(pal); - else - *QGuiApplicationPrivate::app_pal = pal; QCoreApplication::setAttribute(Qt::AA_SetPalette); @@ -3302,6 +3298,19 @@ void QGuiApplication::setPalette(const QPalette &pal) qGuiApp->d_func()->sendApplicationPaletteChange(); } +bool QGuiApplicationPrivate::setPalette(const QPalette &palette) +{ + if (app_pal && palette.isCopyOf(*app_pal)) + return false; + + if (!app_pal) + app_pal = new QPalette(palette); + else + *app_pal = palette; + + return true; +} + void QGuiApplicationPrivate::applyWindowGeometrySpecificationTo(QWindow *window) { windowGeometrySpecification.applyTo(window); |