diff options
| author | Ken VanDine <ken.vandine@canonical.com> | 2011-03-31 15:33:18 -0400 |
|---|---|---|
| committer | Ken VanDine <ken.vandine@canonical.com> | 2011-03-31 15:33:18 -0400 |
| commit | 398dc7246f91c86f8b280c33fd83c3ff5c5c4d21 (patch) | |
| tree | 66dcd1a2d0e225c7f9a1416439a92e8eeed363c6 /libdbusmenu-gtk/menuitem.c | |
| parent | f63a0ff06df6481d36911e385d8bb90ff901464a (diff) | |
| parent | 20e9ad7bb749f130d7d03b637d5b1cfb97c30ea3 (diff) | |
| download | libdbusmenu-398dc7246f91c86f8b280c33fd83c3ff5c5c4d21.tar.gz libdbusmenu-398dc7246f91c86f8b280c33fd83c3ff5c5c4d21.tar.bz2 libdbusmenu-398dc7246f91c86f8b280c33fd83c3ff5c5c4d21.zip | |
releasing version 0.4.1-0ubuntu1
Diffstat (limited to 'libdbusmenu-gtk/menuitem.c')
| -rw-r--r-- | libdbusmenu-gtk/menuitem.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/libdbusmenu-gtk/menuitem.c b/libdbusmenu-gtk/menuitem.c index ca2bc3e..0f511bc 100644 --- a/libdbusmenu-gtk/menuitem.c +++ b/libdbusmenu-gtk/menuitem.c @@ -275,6 +275,17 @@ dbusmenu_menuitem_property_set_shortcut_menuitem (DbusmenuMenuitem * menuitem, c void dbusmenu_menuitem_property_get_shortcut (DbusmenuMenuitem * menuitem, guint * key, GdkModifierType * modifier) { + guint dummykey; + GdkModifierType dummymodifier; + + if (key == NULL) { + key = &dummykey; + } + + if (modifier == NULL) { + modifier = &dummymodifier; + } + *key = 0; *modifier = 0; @@ -287,15 +298,15 @@ dbusmenu_menuitem_property_get_shortcut (DbusmenuMenuitem * menuitem, guint * ke if (g_variant_n_children(wrapper) != 1) { g_warning("Unable to parse shortcut, too many keys"); - g_variant_unref(wrapper); return; } GVariantIter iter; - g_variant_iter_init(&iter, g_variant_get_child_value(wrapper, 0)); + GVariant * child = g_variant_get_child_value(wrapper, 0); + g_variant_iter_init(&iter, child); gchar * string; - while(g_variant_iter_next(&iter, "s", &string)) { + while(g_variant_iter_loop(&iter, "s", &string)) { if (g_strcmp0(string, DBUSMENU_MENUITEM_SHORTCUT_CONTROL) == 0) { *modifier |= GDK_CONTROL_MASK; } else if (g_strcmp0(string, DBUSMENU_MENUITEM_SHORTCUT_ALT) == 0) { @@ -308,10 +319,10 @@ dbusmenu_menuitem_property_get_shortcut (DbusmenuMenuitem * menuitem, guint * ke GdkModifierType tempmod; gtk_accelerator_parse(string, key, &tempmod); } - - g_free(string); } + g_variant_unref(child); + return; } |
