+static GVariant *
+g_emblem_serialize (GIcon *icon)
+{
+ GEmblem *emblem = G_EMBLEM (icon);
+ GVariant *icon_data;
+ GEnumValue *origin;
+ GVariant *result;
+
+ icon_data = g_icon_serialize (emblem->icon);
+ if (!icon_data)
+ return NULL;
+
+ origin = g_enum_get_value (g_type_class_peek (G_TYPE_EMBLEM_ORIGIN), emblem->origin);
+ result = g_variant_new_parsed ("('emblem', <(%v, {'origin': <%s>})>)",
+ icon_data, origin ? origin->value_nick : "unknown");
+ g_variant_unref (icon_data);
+
+ return result;
+}
+