diff options
author | Ted Gould <ted@gould.cx> | 2011-02-18 14:40:04 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-02-18 14:40:04 -0600 |
commit | 895343f4aa0c8c0a58e26a7de8c74e49fd9da292 (patch) | |
tree | 556776c405cf30426f3abf70b1f57f2f23541d0d /libdbusmenu-glib | |
parent | b19de3c3c90df6420200c6ba45ba45060382cca2 (diff) | |
download | libdbusmenu-895343f4aa0c8c0a58e26a7de8c74e49fd9da292.tar.gz libdbusmenu-895343f4aa0c8c0a58e26a7de8c74e49fd9da292.tar.bz2 libdbusmenu-895343f4aa0c8c0a58e26a7de8c74e49fd9da292.zip |
Use the property structures that are from the GetLayout properties
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r-- | libdbusmenu-glib/client.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c index ca32d48..d990b93 100644 --- a/libdbusmenu-glib/client.c +++ b/libdbusmenu-glib/client.c @@ -1486,6 +1486,21 @@ parse_layout_xml(DbusmenuClient * client, GVariant * layout, DbusmenuMenuitem * parse_layout_update(childmi, client); } + /* Apply known properties sent in the structure to the + menu item. Sometimes they may just be copies */ + if (childmi != NULL) { + GVariantIter iter; + g_variant_iter_init(&iter, g_variant_get_child_value(child, 1)); + gchar * prop; + GVariant * value; + + while (g_variant_iter_next(&iter, "{sv}", &prop, &value)) { + dbusmenu_menuitem_property_set_variant(childmi, prop, value); + g_free(prop); + g_variant_unref(value); + } + } + position++; } |