aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-02-04 11:05:31 -0800
committerTed Gould <ted@gould.cx>2010-02-04 11:05:31 -0800
commitf719c72deb754503dbced9c0db48b70cff1eb21e (patch)
treeefdf96658e4db59e711fada7ab41f4f0379f2e20
parent350e98ef479c8038a0ef3e3b1aac45730c8c906a (diff)
parentcf094c53aba8af282fb758e19741468cff9e88f9 (diff)
downloadlibdbusmenu-f719c72deb754503dbced9c0db48b70cff1eb21e.tar.gz
libdbusmenu-f719c72deb754503dbced9c0db48b70cff1eb21e.tar.bz2
libdbusmenu-f719c72deb754503dbced9c0db48b70cff1eb21e.zip
Fixing the check tests.
-rw-r--r--libdbusmenu-gtk/client.c17
-rw-r--r--tests/test-gtk-label-server.c5
2 files changed, 17 insertions, 5 deletions
diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c
index 555e8d2..781326e 100644
--- a/libdbusmenu-gtk/client.c
+++ b/libdbusmenu-gtk/client.c
@@ -150,17 +150,23 @@ static void
process_toggle_type (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * value)
{
if (!IS_GENERICMENUITEM(gmi)) return;
+ if (value == NULL) return;
GenericmenuitemCheckType type = GENERICMENUITEM_CHECK_TYPE_NONE;
- if (value != NULL && G_VALUE_TYPE(value) == G_TYPE_STRING) {
- const gchar * strval = g_value_get_string(value);
+ GValue strvalue = {0};
+ g_value_init(&strvalue, G_TYPE_STRING);
+
+ if (value != NULL && g_value_transform(value, &strvalue)) {
+ const gchar * strval = g_value_get_string(&strvalue);
if (!g_strcmp0(strval, DBUSMENU_MENUITEM_TOGGLE_CHECK)) {
type = GENERICMENUITEM_CHECK_TYPE_CHECKBOX;
} else if (!g_strcmp0(strval, DBUSMENU_MENUITEM_TOGGLE_RADIO)) {
type = GENERICMENUITEM_CHECK_TYPE_RADIO;
}
+
+ g_value_unset(&strvalue);
}
genericmenuitem_set_check_type(GENERICMENUITEM(gmi), type);
@@ -176,8 +182,11 @@ process_toggle_state (DbusmenuMenuitem * mi, GtkMenuItem * gmi, const GValue * v
GenericmenuitemState state = GENERICMENUITEM_STATE_UNCHECKED;
- if (value != NULL && G_VALUE_TYPE(value) == G_TYPE_INT) {
- int val = g_value_get_int(value);
+ GValue intvalue = {0};
+ g_value_init(&intvalue, G_TYPE_INT);
+
+ if (value != NULL && g_value_transform(value, &intvalue)) {
+ int val = g_value_get_int(&intvalue);
if (val == DBUSMENU_MENUITEM_TOGGLE_STATE_CHECKED) {
state = GENERICMENUITEM_STATE_CHECKED;
diff --git a/tests/test-gtk-label-server.c b/tests/test-gtk-label-server.c
index ae772f1..32d7a43 100644
--- a/tests/test-gtk-label-server.c
+++ b/tests/test-gtk-label-server.c
@@ -53,7 +53,10 @@ set_props (DbusmenuMenuitem * mi, JsonObject * node)
JsonNode * lnode = json_object_get_member(node, member);
if (JSON_NODE_TYPE(lnode) != JSON_NODE_VALUE) { continue; }
- dbusmenu_menuitem_property_set(mi, member, json_node_get_string(lnode));
+ GValue value = {0};
+ json_node_get_value(lnode, &value);
+ dbusmenu_menuitem_property_set_value(mi, member, &value);
+ g_value_unset(&value);
}
return;