use struct marshalizer for image hints as pointed out by k-s
authordiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 29 Nov 2011 22:53:00 +0000 (22:53 +0000)
committerdiscomfitor <discomfitor@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 29 Nov 2011 22:53:00 +0000 (22:53 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/e_dbus@65693 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/notification/marshal.c

index a0850f3..3c4ae29 100644 (file)
@@ -8,6 +8,20 @@
 #include "e_notify_private.h"
 
 void
+e_notify_marshal_dict_struct(DBusMessageIter *iter, const char *key, char *type_str, E_DBus_Variant_Marshaller func, void *data)
+{
+   DBusMessageIter entry, variant;
+
+   dbus_message_iter_open_container(iter, DBUS_TYPE_DICT_ENTRY, "sv", &entry);
+   dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key);
+   func(&entry, data);
+   dbus_message_iter_open_container(&entry, DBUS_TYPE_STRUCT, type_str, &variant);
+   func(&variant, data);
+   dbus_message_iter_close_container(&entry, &variant);
+   dbus_message_iter_close_container(iter, &entry);
+}
+
+void
 e_notify_marshal_dict_variant(DBusMessageIter *iter, const char *key, char *type_str, E_DBus_Variant_Marshaller func, void *data)
 {
    DBusMessageIter entry, variant;
@@ -355,7 +369,7 @@ e_notify_marshal_notify(E_Notification *n)
    if (n->hints.desktop)
      e_notify_marshal_dict_string(&sub, "desktop_entry", n->hints.desktop);
    if (n->hints.image_data)
-     e_notify_marshal_dict_variant(&sub, "image-data", "(iiibiiay)", E_DBUS_VARIANT_MARSHALLER(e_notify_marshal_hint_image), n->hints.image_data);
+     e_notify_marshal_dict_struct(&sub, "image-data", "(iiibiiay)", E_DBUS_VARIANT_MARSHALLER(e_notify_marshal_hint_image), n->hints.image_data);
    if (n->hints.sound_file)
      e_notify_marshal_dict_string(&sub, "sound-file", n->hints.sound_file);
    if (n->hints.suppress_sound) /* we only need to send this if its true */