blob: caedd05baa83662f7e0daacae81695b62ff92474 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
From: Fabian Vogt <fvogt@suse.de>
Subject: Fix build against Qt 5.15
With 0a93db4d82c051164923a10e4382b12de9049b45
("Unify application palette handling between QGuiApplication and QApplication")
QApplicationPrivate::setSystemPalette does no longer exist.
This style does explictly not support "system colors" defined by the platform
theme, which have priority over the style provided palette. To prevent the
theme from overriding the colors, it previously used the system palette
mechanism (which has priority over the theme), but that way does not work
anymore. Instead, simply use QApplication::setPalette. While that has
different behaviour and might break in some applications, it's better than
having a completely messed up palette with certain themes.
This is the same change as suggested by gamezelda on
https://aur.archlinux.org/packages/qt5-styleplugins/#comment-749190.
Index: qtstyleplugins-opensource-src-5.0.0+git20170311/src/plugins/styles/gtk2/qgtkstyle.cpp
===================================================================
--- qtstyleplugins-opensource-src-5.0.0+git20170311.orig/src/plugins/styles/gtk2/qgtkstyle.cpp
+++ qtstyleplugins-opensource-src-5.0.0+git20170311/src/plugins/styles/gtk2/qgtkstyle.cpp
@@ -440,7 +440,11 @@ void QGtkStyle::polish(QApplication *app
// not supported as these should be entirely determined by
// current Gtk settings
if (app->desktopSettingsAware() && d->isThemeAvailable()) {
+#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
QApplicationPrivate::setSystemPalette(standardPalette());
+#else
+ QApplication::setPalette(standardPalette());
+#endif
QApplicationPrivate::setSystemFont(d->getThemeFont());
d->applyCustomPaletteHash();
if (!d->isKDE4Session())
Index: qtstyleplugins-opensource-src-5.0.0+git20170311/src/plugins/styles/gtk2/qgtkstyle_p.cpp
===================================================================
--- qtstyleplugins-opensource-src-5.0.0+git20170311.orig/src/plugins/styles/gtk2/qgtkstyle_p.cpp
+++ qtstyleplugins-opensource-src-5.0.0+git20170311/src/plugins/styles/gtk2/qgtkstyle_p.cpp
@@ -508,7 +508,9 @@ void QGtkStyleUpdateScheduler::updateThe
if (oldTheme != QGtkStylePrivate::getThemeName()) {
oldTheme = QGtkStylePrivate::getThemeName();
QPalette newPalette = qApp->style()->standardPalette();
+#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
QApplicationPrivate::setSystemPalette(newPalette);
+#endif
QApplication::setPalette(newPalette);
if (!QGtkStylePrivate::instances.isEmpty()) {
QGtkStylePrivate::instances.last()->initGtkWidgets();
|