Merge lp:~mterry/libdbusmenu/wrap-propertieschanged into lp:libdbusmenu/0.5

Proposed by Michael Terry
Status: Merged
Merged at revision: 257
Proposed branch: lp:~mterry/libdbusmenu/wrap-propertieschanged
Merge into: lp:libdbusmenu/0.5
Diff against target: 30 lines (+3/-3)
1 file modified
libdbusmenu-glib/server.c (+3/-3)
To merge this branch: bzr merge lp:~mterry/libdbusmenu/wrap-propertieschanged
Reviewer Review Type Date Requested Status
Ted Gould (community) Approve
Review via email: mp+52581@code.launchpad.net

Description of the change

The signature for dbus's PropertiesChanged is (sa{sv}as) not (sa{ss}as). So the values in the middle dict need to be wrapped.

If you don't do this, listeners for those property changes get the following message:

GLib-GIO-WARNING **: Value for PropertiesChanged signal with type `(sa{ss}as)' does not match `(sa{sv}as)'

And the signal doesn't get passed on the listener app.

To post a comment you must log in.
Revision history for this message
Ted Gould (ted) wrote :

  review approve

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'libdbusmenu-glib/server.c'
2--- libdbusmenu-glib/server.c 2011-03-03 18:27:07 +0000
3+++ libdbusmenu-glib/server.c 2011-03-08 17:02:32 +0000
4@@ -511,7 +511,7 @@
5 GVariantBuilder params;
6 g_variant_builder_init(&params, G_VARIANT_TYPE_TUPLE);
7 g_variant_builder_add_value(&params, g_variant_new_string(DBUSMENU_INTERFACE));
8- GVariant * dict = g_variant_new_dict_entry(g_variant_new_string("TextDirection"), g_variant_new_string(dbusmenu_text_direction_get_nick(priv->text_direction)));
9+ GVariant * dict = g_variant_new_dict_entry(g_variant_new_string("TextDirection"), g_variant_new_variant(g_variant_new_string(dbusmenu_text_direction_get_nick(priv->text_direction))));
10 g_variant_builder_add_value(&params, g_variant_new_array(NULL, &dict, 1));
11 g_variant_builder_add_value(&params, g_variant_new_array(G_VARIANT_TYPE_STRING, NULL, 0));
12 GVariant * vparams = g_variant_builder_end(&params);
13@@ -535,7 +535,7 @@
14 GVariantBuilder params;
15 g_variant_builder_init(&params, G_VARIANT_TYPE_TUPLE);
16 g_variant_builder_add_value(&params, g_variant_new_string(DBUSMENU_INTERFACE));
17- GVariant * dict = g_variant_new_dict_entry(g_variant_new_string("Status"), g_variant_new_string(dbusmenu_status_get_nick(instatus)));
18+ GVariant * dict = g_variant_new_dict_entry(g_variant_new_string("Status"), g_variant_new_variant(g_variant_new_string(dbusmenu_status_get_nick(instatus))));
19 g_variant_builder_add_value(&params, g_variant_new_array(NULL, &dict, 1));
20 g_variant_builder_add_value(&params, g_variant_new_array(G_VARIANT_TYPE_STRING, NULL, 0));
21 GVariant * vparams = g_variant_builder_end(&params);
22@@ -1773,7 +1773,7 @@
23 g_variant_builder_add_value(&params, g_variant_new_string(DBUSMENU_INTERFACE));
24 GVariant * items = NULL;
25 if (priv->icon_dirs != NULL) {
26- GVariant * dict = g_variant_new_dict_entry(g_variant_new_string("IconThemePath"), g_variant_new_strv((const gchar * const *)priv->icon_dirs, -1));
27+ GVariant * dict = g_variant_new_dict_entry(g_variant_new_string("IconThemePath"), g_variant_new_variant(g_variant_new_strv((const gchar * const *)priv->icon_dirs, -1)));
28 items = g_variant_new_array(NULL, &dict, 1);
29 } else {
30 items = g_variant_new_array(G_VARIANT_TYPE("{sv}"), NULL, 0);

Subscribers

People subscribed via source and target branches