From 20d3b1f8b18507cd8644ed98ff06659d04eb2c84 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Tue, 2 Mar 2010 13:51:00 -0500 Subject: [PATCH] Error out at startup if the GConf schemas are missing If we don't do this, then boolean/int/list keys will seem to sort of work (but defaulting to false/0/[] instead of the correct schema defaults), but string keys will return null, which will usually cause exceptions or crashes. https://bugzilla.gnome.org/show_bug.cgi?id=611214 --- src/shell-gconf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/shell-gconf.c b/src/shell-gconf.c index 7073bbdcf..30485d4ad 100644 --- a/src/shell-gconf.c +++ b/src/shell-gconf.c @@ -46,9 +46,21 @@ static void gconf_value_changed (GConfClient *client, const char *key, static void shell_gconf_init (ShellGConf *gconf) { + GConfValue *val; + gconf->client = gconf_client_get_default (); gconf_client_add_dir (gconf->client, SHELL_GCONF_DIR, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); + + val = gconf_client_get (gconf->client, + SHELL_GCONF_DIR "/development_tools", NULL); + if (!val) + { + g_error ("GNOME Shell GConf schemas not found.\n" + "This generally indicates a building or packaging problem."); + } + gconf_value_free (val); + g_signal_connect (gconf->client, "value_changed", G_CALLBACK (gconf_value_changed), gconf); }