summaryrefslogtreecommitdiff
path: root/gio/gemblem.c
diff options
context:
space:
mode:
Diffstat (limited to 'gio/gemblem.c')
-rw-r--r--gio/gemblem.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gio/gemblem.c b/gio/gemblem.c
index 1df712b6a..77ea405e5 100644
--- a/gio/gemblem.c
+++ b/gio/gemblem.c
@@ -349,6 +349,23 @@ g_emblem_from_tokens (gchar **tokens,
return G_ICON (emblem);
}
+static GVariant *
+g_emblem_serialize (GIcon *icon)
+{
+ GEmblem *emblem = G_EMBLEM (icon);
+ GVariant *icon_data;
+ GVariant *result;
+
+ icon_data = g_icon_serialize (emblem->icon);
+ if (!icon_data)
+ return NULL;
+
+ result = g_variant_new ("(vu)", icon_data, emblem->origin);
+ g_variant_unref (icon_data);
+
+ return result;
+}
+
static void
g_emblem_iface_init (GIconIface *iface)
{
@@ -356,4 +373,5 @@ g_emblem_iface_init (GIconIface *iface)
iface->equal = g_emblem_equal;
iface->to_tokens = g_emblem_to_tokens;
iface->from_tokens = g_emblem_from_tokens;
+ iface->serialize = g_emblem_serialize;
}