From 22f51336aa7899a908069c3040bd7def83766e9f Mon Sep 17 00:00:00 2001 From: Julian Bouzas Date: Tue, 6 Feb 2024 10:55:05 -0500 Subject: [PATCH] module-settings: don't remove setting from sm-settings if it was removed from persistent-sm-settings Similar to 'default.audio.sink', a setting from sm-settings should never be removed when the associated persistent setting is removed. Only settings from persistent-sm-settings can be removed, like 'default.configured.audio.sink'. --- modules/module-settings.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/module-settings.c b/modules/module-settings.c index e68dba48..765b5413 100644 --- a/modules/module-settings.c +++ b/modules/module-settings.c @@ -64,11 +64,15 @@ on_persistent_metadata_changed (WpMetadata *m, guint32 subject, /* Update persistent settings with new value and timeout save it */ wp_properties_set (self->persistent_settings, key, value); - wp_info_object (self, "new persistent setting updated: %s = %s", key, value); + if (value) + wp_info_object (self, "persistent setting updated: %s = %s", key, value); + else + wp_info_object (self, "persistent setting removed: %s", key); wp_state_save_after_timeout (self->state, core, self->persistent_settings); /* Also update current settings with new value */ - wp_metadata_set (WP_METADATA (self->impl_metadata), 0, key, type, value); + if (value) + wp_metadata_set (WP_METADATA (self->impl_metadata), 0, key, type, value); } WpProperties *