aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/client.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2011-02-18 14:40:04 -0600
committerTed Gould <ted@gould.cx>2011-02-18 14:40:04 -0600
commit895343f4aa0c8c0a58e26a7de8c74e49fd9da292 (patch)
tree556776c405cf30426f3abf70b1f57f2f23541d0d /libdbusmenu-glib/client.c
parentb19de3c3c90df6420200c6ba45ba45060382cca2 (diff)
downloadlibdbusmenu-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/client.c')
-rw-r--r--libdbusmenu-glib/client.c15
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++;
}