Fix creation of kdeglobals if /etc/xdg/kdeglobals present

Summary:
If /etc/xdg/kdeglobals exists but ~/.config/kdeglobals
does not (like on the first start of kwin_wayland), it did not notice
changes to kdeglobals.
This lead to KWin using the wrong color scheme for the window decoration
on the first login, which also could not be changed without a session restart.

Test Plan: Cleared ~ and logged in again, title bar color is now correct.

Reviewers: #plasma, romangg

Reviewed By: #plasma, romangg

Subscribers: sitter, broulik, rikmills, kwin, plasma-devel

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D22238
This commit is contained in:
Fabian Vogt 2019-07-03 14:01:07 +02:00
parent 9b448f43aa
commit c3c030d8b5

View file

@ -41,7 +41,7 @@ DecorationPalette::DecorationPalette(const QString &colorScheme)
? colorScheme ? colorScheme
: QStandardPaths::locate(QStandardPaths::GenericConfigLocation, colorScheme)) : QStandardPaths::locate(QStandardPaths::GenericConfigLocation, colorScheme))
{ {
if (m_colorScheme.isEmpty() && colorScheme == QStringLiteral("kdeglobals")) { if (!m_colorScheme.startsWith(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation)) && colorScheme == QStringLiteral("kdeglobals")) {
// kdeglobals doesn't exist so create it. This is needed to monitor it using QFileSystemWatcher. // kdeglobals doesn't exist so create it. This is needed to monitor it using QFileSystemWatcher.
auto config = KSharedConfig::openConfig(colorScheme, KConfig::SimpleConfig); auto config = KSharedConfig::openConfig(colorScheme, KConfig::SimpleConfig);
KConfigGroup wmConfig(config, QStringLiteral("WM")); KConfigGroup wmConfig(config, QStringLiteral("WM"));