aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog6
-rw-r--r--libdbusmenu-glib/server.c9
-rw-r--r--tests/test-glib-objects.c44
3 files changed, 53 insertions, 6 deletions
diff --git a/debian/changelog b/debian/changelog
index 174aae2..2e51ca9 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+libdbusmenu (0.2.0~dev-0ubuntu1~ppa6~sigfix5) UNRELEASED; urgency=low
+
+ * string to value fix
+
+ -- Ted Gould <ted@ubuntu.com> Mon, 21 Dec 2009 21:19:11 -0600
+
libdbusmenu (0.2.0~dev-0ubuntu1~ppa6~sigfix4) karmic; urgency=low
* Using a hash table replace
diff --git a/libdbusmenu-glib/server.c b/libdbusmenu-glib/server.c
index f61b0fb..0825997 100644
--- a/libdbusmenu-glib/server.c
+++ b/libdbusmenu-glib/server.c
@@ -92,7 +92,7 @@ static void dbusmenu_server_dispose (GObject *object);
static void dbusmenu_server_finalize (GObject *object);
static void set_property (GObject * obj, guint id, const GValue * value, GParamSpec * pspec);
static void get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec);
-static void menuitem_property_changed (DbusmenuMenuitem * mi, gchar * property, gchar * value, DbusmenuServer * server);
+static void menuitem_property_changed (DbusmenuMenuitem * mi, gchar * property, GValue * value, DbusmenuServer * server);
static void menuitem_child_added (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint pos, DbusmenuServer * server);
static void menuitem_child_removed (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, DbusmenuServer * server);
static void menuitem_signals_create (DbusmenuMenuitem * mi, gpointer data);
@@ -292,12 +292,9 @@ get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec)
}
static void
-menuitem_property_changed (DbusmenuMenuitem * mi, gchar * property, gchar * strvalue, DbusmenuServer * server)
+menuitem_property_changed (DbusmenuMenuitem * mi, gchar * property, GValue * value, DbusmenuServer * server)
{
- GValue value = {0};
- g_value_init(&value, G_TYPE_STRING);
- g_value_set_static_string(&value, strvalue);
- g_signal_emit(G_OBJECT(server), signals[ID_PROP_UPDATE], 0, dbusmenu_menuitem_get_id(mi), property, &value, TRUE);
+ g_signal_emit(G_OBJECT(server), signals[ID_PROP_UPDATE], 0, dbusmenu_menuitem_get_id(mi), property, value, TRUE);
return;
}
diff --git a/tests/test-glib-objects.c b/tests/test-glib-objects.c
index afa669a..7b22b7a 100644
--- a/tests/test-glib-objects.c
+++ b/tests/test-glib-objects.c
@@ -206,6 +206,49 @@ test_object_menuitem_props_signals (void)
return;
}
+/* Set a boolean prop, as a string too! */
+static void
+test_object_menuitem_props_boolstr (void)
+{
+ /* Build a menu item */
+ DbusmenuMenuitem * item = dbusmenu_menuitem_new();
+
+ /* Test to make sure it's a happy object */
+ g_assert(item != NULL);
+
+ /* Setting a bool */
+ dbusmenu_menuitem_property_set_bool(item, "boolean", TRUE);
+ g_assert(dbusmenu_menuitem_property_get_bool(item, "boolean"));
+
+ /* Setting "true" */
+ dbusmenu_menuitem_property_set(item, "boolean", "true");
+ g_assert(dbusmenu_menuitem_property_get_bool(item, "boolean"));
+
+ /* Setting "True" */
+ dbusmenu_menuitem_property_set(item, "boolean", "True");
+ g_assert(dbusmenu_menuitem_property_get_bool(item, "boolean"));
+
+ /* Setting "TRUE" */
+ dbusmenu_menuitem_property_set(item, "boolean", "TRUE");
+ g_assert(dbusmenu_menuitem_property_get_bool(item, "boolean"));
+
+ /* Setting "false" */
+ dbusmenu_menuitem_property_set(item, "boolean", "false");
+ g_assert(!dbusmenu_menuitem_property_get_bool(item, "boolean"));
+
+ /* Setting "False" */
+ dbusmenu_menuitem_property_set(item, "boolean", "False");
+ g_assert(!dbusmenu_menuitem_property_get_bool(item, "boolean"));
+
+ /* Setting "FALSE" */
+ dbusmenu_menuitem_property_set(item, "boolean", "FALSE");
+ g_assert(!dbusmenu_menuitem_property_get_bool(item, "boolean"));
+
+ g_object_unref(item);
+
+ return;
+}
+
/* Build the test suite */
static void
test_glib_objects_suite (void)
@@ -216,6 +259,7 @@ test_glib_objects_suite (void)
g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_bool", test_object_menuitem_props_bool);
g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_swap", test_object_menuitem_props_swap);
g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_signals", test_object_menuitem_props_signals);
+ g_test_add_func ("/dbusmenu/glib/objects/menuitem/props_boolstr", test_object_menuitem_props_boolstr);
return;
}