diff options
author | Ryan Lortie <desrt@desrt.ca> | 2011-05-06 12:10:23 +0200 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2011-05-06 12:10:23 +0200 |
commit | a2c4601f2650e83bff2fec3f1a13dc46cdf3a070 (patch) | |
tree | 8e7afddf533c0b3a8ac59113ffd909689fd84b7f /gsettings | |
parent | e7dcf8d6e9e5c184b1302d0c731f632ab8466f1d (diff) | |
download | dconf-a2c4601f2650e83bff2fec3f1a13dc46cdf3a070.tar.gz |
client-side lockdown support
Support lockdown on the client side for GSettings.
For performance reasons only lockdown of specific keys (not entire
subpaths) is supported at the moment. This may change in the future if
we can find a way to make large numbers of related GVDB lookups
sufficiently performant.
Diffstat (limited to 'gsettings')
-rw-r--r-- | gsettings/dconfsettingsbackend.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gsettings/dconfsettingsbackend.c b/gsettings/dconfsettingsbackend.c index d978646..77d9358 100644 --- a/gsettings/dconfsettingsbackend.c +++ b/gsettings/dconfsettingsbackend.c @@ -101,6 +101,24 @@ dconf_settings_backend_signal (GDBusConnection *connection, g_free (rels); } + + if (dconf_engine_decode_writability_notify (&path, interface_name, + signal_name, parameters)) + { + GSettingsBackend *backend = G_SETTINGS_BACKEND (dcsb); + + if (g_str_has_suffix (path, "/")) + { + g_settings_backend_path_writable_changed (backend, path); + g_settings_backend_path_changed (backend, path, NULL); + } + + else + { + g_settings_backend_writable_changed (backend, path); + g_settings_backend_changed (backend, path, NULL); + } + } } static void |