diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libappindicator/app-indicator.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/libappindicator/app-indicator.c b/src/libappindicator/app-indicator.c index 908684f..2befb34 100644 --- a/src/libappindicator/app-indicator.c +++ b/src/libappindicator/app-indicator.c @@ -215,10 +215,10 @@ app_indicator_class_init (AppIndicatorClass *klass) g_object_class_install_property(object_class, PROP_MENU, - g_param_spec_string (PROP_MENU_S, + g_param_spec_boxed (PROP_MENU_S, "The object path of the menu on DBus.", "A method for getting the menu path as a string for DBus.", - NULL, + DBUS_TYPE_G_OBJECT_PATH, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (object_class, @@ -541,14 +541,14 @@ app_indicator_get_property (GObject * object, guint prop_id, GValue * value, GPa break; case PROP_MENU: - if (G_VALUE_HOLDS_STRING(value)) { - if (priv->menuservice != NULL) { - g_object_get_property (G_OBJECT (priv->menuservice), DBUSMENU_SERVER_PROP_DBUS_OBJECT, value); - } - } else { - WARN_BAD_TYPE(PROP_MENU_S, value); - } - break; + if (priv->menuservice != NULL) { + GValue strval = {0}; + g_value_init(&strval, G_TYPE_STRING); + g_object_get_property (G_OBJECT (priv->menuservice), DBUSMENU_SERVER_PROP_DBUS_OBJECT, &strvalue); + g_value_set_boxed(value, g_value_get_string(&strvalue)); + g_value_unset(&strvalue); + } + break; case PROP_CONNECTED: g_value_set_boolean (value, priv->watcher_proxy != NULL ? TRUE : FALSE); |