diff --git a/kded/gtkconfig.h b/kded/gtkconfig.h --- a/kded/gtkconfig.h +++ b/kded/gtkconfig.h @@ -86,10 +86,12 @@ void onGlobalSettingsChange(int settingsChangeType, int arg) const; void onKdeglobalsSettingsChange(const KConfigGroup &group, const QByteArrayList &names) const; void onKWinSettingsChange(const KConfigGroup &group, const QByteArrayList &names) const; + void onKCMInputSettingsChange(const KConfigGroup &group, const QByteArrayList &names) const; private: QScopedPointer configValueProvider; QScopedPointer themePreviewer; KConfigWatcher::Ptr kdeglobalsConfigWatcher; KConfigWatcher::Ptr kwinConfigWatcher; + KConfigWatcher::Ptr kcminputConfigWatcher; }; diff --git a/kded/gtkconfig.cpp b/kded/gtkconfig.cpp --- a/kded/gtkconfig.cpp +++ b/kded/gtkconfig.cpp @@ -39,7 +39,8 @@ configValueProvider(new ConfigValueProvider()), themePreviewer(new ThemePreviewer(this)), kdeglobalsConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kdeglobals")))), - kwinConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kwinrc")))) + kwinConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kwinrc")))), + kcminputConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kcminputrc")))) { QDBusConnection dbus = QDBusConnection::sessionBus(); dbus.registerService(QStringLiteral("org.kde.GtkConfig")); @@ -49,6 +50,7 @@ connect(KIconLoader::global(), &KIconLoader::iconChanged, this, &GtkConfig::setIconTheme); connect(kdeglobalsConfigWatcher.data(), &KConfigWatcher::configChanged, this, &GtkConfig::onKdeglobalsSettingsChange); connect(kwinConfigWatcher.data(), &KConfigWatcher::configChanged, this, &GtkConfig::onKWinSettingsChange); + connect(kcminputConfigWatcher.data(), &KConfigWatcher::configChanged, this, &GtkConfig::onKCMInputSettingsChange); dbus.connect( QString(), QStringLiteral("/KGlobalSettings"), @@ -211,9 +213,7 @@ SettingsChangeType changeType = static_cast(settingsChangeType); SettingsCategory settingsCategory = static_cast(arg); - if (changeType == SettingsChangeType::Cursor) { - setCursorTheme(); - } else if (changeType == SettingsChangeType::Settings && settingsCategory == SettingsCategory::Style) { + if (changeType == SettingsChangeType::Settings && settingsCategory == SettingsCategory::Style) { setIconsOnButtons(); setIconsInMenus(); setToolbarStyle(); @@ -240,4 +240,13 @@ } } +void GtkConfig::onKCMInputSettingsChange(const KConfigGroup& group, const QByteArrayList& names) const +{ + if (group.name() == QStringLiteral("Mouse") + && names.contains("cursorTheme")) { + setCursorTheme(); + } +} + + #include "gtkconfig.moc"