static void panel_binding_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, PanelBinding *binding) { GConfValue *value; if (binding->keyval) panel_binding_clear_entry (binding, NULL); binding->keyval = 0; binding->modifiers = 0; value = gconf_entry_get_value (entry); if (!value || value->type != GCONF_VALUE_STRING) return; panel_binding_set_from_string (binding, gconf_value_get_string (value)); if (!binding->keyval) return; panel_binding_set_entry (binding, NULL); }
static void panel_binding_changed (GSettings *settings, gchar *key, PanelBinding *binding) { if (binding->keyval) panel_binding_clear_entry (binding, NULL); binding->keyval = 0; binding->modifiers = 0; gchar *value = g_settings_get_string (settings, key); panel_binding_set_from_string (binding, value); g_free (value); if (!binding->keyval) return; panel_binding_set_entry (binding, NULL); }