[gnome-builder] libide/core: ensure we query all keys for changed details



commit 1410bd22ac5720ed18345719eb419dbe23edee7d
Author: Christian Hergert <chergert redhat com>
Date:   Thu Aug 18 17:25:26 2022 -0700

    libide/core: ensure we query all keys for changed details

 src/libide/core/ide-layered-settings.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
---
diff --git a/src/libide/core/ide-layered-settings.c b/src/libide/core/ide-layered-settings.c
index 2a5c84ef2..716abbfdb 100644
--- a/src/libide/core/ide-layered-settings.c
+++ b/src/libide/core/ide-layered-settings.c
@@ -387,13 +387,23 @@ DEFINE_SETTER (uint,    guint,         new_uint32)
 
 void
 ide_layered_settings_append (IdeLayeredSettings *self,
-                              GSettings           *settings)
+                             GSettings          *settings)
 {
+  g_auto(GStrv) keys = NULL;
+
   g_return_if_fail (IDE_IS_LAYERED_SETTINGS (self));
   g_return_if_fail (G_IS_SETTINGS (settings));
 
   g_ptr_array_add (self->settings, g_object_ref (settings));
 
+  /* Query all keys to ensure we get change notifications */
+  keys = ide_layered_settings_list_keys (self);
+  for (guint i = 0; keys[i]; i++)
+    {
+      GVariant *value = g_settings_get_value (settings, keys[i]);
+      g_variant_unref (value);
+    }
+
   g_signal_connect_object (settings,
                            "changed",
                            G_CALLBACK (ide_layered_settings_settings_changed_cb),


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]