aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdbusmenu-glib/menuitem.c')
-rw-r--r--libdbusmenu-glib/menuitem.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c
index 08cc27b..7e1e1ac 100644
--- a/libdbusmenu-glib/menuitem.c
+++ b/libdbusmenu-glib/menuitem.c
@@ -207,7 +207,7 @@ dbusmenu_menuitem_class_init (DbusmenuMenuitemClass *klass)
G_TYPE_NONE, 0, G_TYPE_NONE);
g_object_class_install_property (object_class, PROP_ID,
- g_param_spec_uint("id", "ID for the menu item",
+ g_param_spec_int("id", "ID for the menu item",
"This is a unique indentifier for the menu item.",
0, 30000, 0,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
@@ -246,7 +246,7 @@ g_value_transform_STRING_INT (const GValue * in, GValue * out)
return;
}
-static guint menuitem_next_id = 1;
+static gint menuitem_next_id = 1;
/* A small little function to both clear the insides of a
value as well as the memory it itself uses. */
@@ -315,9 +315,9 @@ set_property (GObject * obj, guint id, const GValue * value, GParamSpec * pspec)
switch (id) {
case PROP_ID:
- priv->id = g_value_get_uint(value);
+ priv->id = g_value_get_int(value);
if (priv->id > menuitem_next_id) {
- menuitem_next_id = priv->id;
+ menuitem_next_id = priv->id + 1;
}
break;
}
@@ -332,10 +332,7 @@ get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec)
switch (id) {
case PROP_ID:
- if (priv->id == 0) {
- priv->id = menuitem_next_id++;
- }
- g_value_set_uint(value, priv->id);
+ g_value_set_int(value, priv->id);
break;
}
@@ -355,7 +352,7 @@ get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec)
DbusmenuMenuitem *
dbusmenu_menuitem_new (void)
{
- return g_object_new(DBUSMENU_TYPE_MENUITEM, NULL);
+ return g_object_new(DBUSMENU_TYPE_MENUITEM, "id", menuitem_next_id++, NULL);
}
/**