Parse multiple keys in one keybind

This commit is contained in:
Dana Jansens 2010-09-15 00:49:09 +02:00
parent 36a437a702
commit 3ff4162034

View file

@ -389,16 +389,18 @@ static void parse_per_app_settings(xmlNodePtr node, gpointer d)
static void parse_key(xmlNodePtr node, GList *keylist)
{
gchar *key;
gchar *keystring, **keys, **key;
xmlNodePtr n;
gboolean is_chroot = FALSE;
if (!obt_xml_attr_string(node, "key", &key))
if (!obt_xml_attr_string(node, "key", &keystring))
return;
obt_xml_attr_bool(node, "chroot", &is_chroot);
keylist = g_list_append(keylist, key);
keys = g_strsplit(keystring, " ", 0);
for (key = keys; *key; ++key) {
keylist = g_list_append(keylist, *key);
if ((n = obt_xml_find_node(node->children, "keybind"))) {
while (n) {
@ -417,13 +419,16 @@ static void parse_key(xmlNodePtr node, GList *keylist)
}
}
if (is_chroot)
keyboard_chroot(keylist);
g_free(key);
keylist = g_list_delete_link(keylist, g_list_last(keylist));
}
g_strfreev(keys);
g_free(keystring);
}
static void parse_keyboard(xmlNodePtr node, gpointer d)
{
xmlNodePtr n;