static void panel_bindings_initialise (void) { GConfClient *client; GError *error; int i; client = panel_gconf_get_client (); error = NULL; gconf_client_add_dir (client, BINDINGS_PREFIX, GCONF_CLIENT_PRELOAD_ONELEVEL, &error); if (error) { g_warning (_("Error loading gconf directory '%s': %s"), BINDINGS_PREFIX, error->message), g_error_free (error); } for (i = 0; i < G_N_ELEMENTS (bindings); i++) { const char *key; char *str; key = panel_gconf_sprintf ("%s/%s", BINDINGS_PREFIX, bindings [i].key); error = NULL; str = gconf_client_get_string (client, key, &error); if (error) { g_warning (_("Error getting value for '%s': %s"), error->message, key); continue; } panel_binding_set_from_string (&bindings [i], str); panel_binding_watch (&bindings [i], key); g_free (str); } }
static void panel_bindings_initialise (void) { int i; char *str; if (initialised) return; if (!mate_gsettings_schema_exists (MARCO_SCHEMA)) { initialised = TRUE; return; } marco_settings = g_settings_new (MARCO_SCHEMA); marco_keybindings_settings = g_settings_new (MARCO_KEYBINDINGS_SCHEMA); for (i = 0; i < G_N_ELEMENTS (bindings); i++) { str = g_settings_get_string (marco_keybindings_settings, bindings [i].key); panel_binding_set_from_string (&bindings [i], str); panel_binding_watch (&bindings [i], bindings [i].key); g_free (str); } /* mouse button modifier */ g_signal_connect (marco_settings, "changed::" MARCO_MOUSE_BUTTON_MODIFIER_KEY, G_CALLBACK (panel_bindings_mouse_modifier_changed), NULL); str = g_settings_get_string (marco_settings, MARCO_MOUSE_BUTTON_MODIFIER_KEY); panel_bindings_mouse_modifier_set_from_string (str); g_free (str); initialised = TRUE; }