aboutsummaryrefslogtreecommitdiff
path: root/libindicator/indicator-ng.c
diff options
context:
space:
mode:
Diffstat (limited to 'libindicator/indicator-ng.c')
-rw-r--r--libindicator/indicator-ng.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/libindicator/indicator-ng.c b/libindicator/indicator-ng.c
index 1e95785..f2b957b 100644
--- a/libindicator/indicator-ng.c
+++ b/libindicator/indicator-ng.c
@@ -236,10 +236,6 @@ static void
indicator_ng_update_entry (IndicatorNg *self)
{
GVariant *state;
- const gchar *label = NULL;
- const gchar *iconstr = NULL;
- const gchar *accessible_desc = NULL;
- gboolean visible = TRUE;
g_return_if_fail (self->menu != NULL);
g_return_if_fail (self->actions != NULL);
@@ -254,25 +250,20 @@ indicator_ng_update_entry (IndicatorNg *self)
state = g_action_group_get_action_state (self->actions, self->header_action);
if (state && g_variant_is_of_type (state, G_VARIANT_TYPE ("(sssb)")))
{
+ const gchar *label;
+ const gchar *iconstr;
+ const gchar *accessible_desc;
+ gboolean visible;
+
g_variant_get (state, "(&s&s&sb)", &label, &iconstr, &accessible_desc, &visible);
- }
- else if (state && g_variant_is_of_type (state, G_VARIANT_TYPE ("a{sv}")))
- {
- g_variant_lookup (state, "label", "&s", &label);
- g_variant_lookup (state, "icon", "&s", &iconstr);
- g_variant_lookup (state, "accessible-desc", "&s", &accessible_desc);
- g_variant_lookup (state, "visible", "b", &visible);
- }
- else
- g_warning ("the action of the indicator menu item must have state with type (sssb) or a{sv}");
- if (label)
- indicator_ng_set_label (self, label);
- if (iconstr)
+ indicator_ng_set_label (self, label);
indicator_ng_set_icon_from_string (self, iconstr);
- if (accessible_desc)
- indicator_ng_set_accessible_desc (self, accessible_desc);
- indicator_object_set_visible (INDICATOR_OBJECT (self), visible);
+ indicator_ng_set_accessible_desc (self, accessible_desc);
+ indicator_object_set_visible (INDICATOR_OBJECT (self), visible);
+ }
+ else
+ g_warning ("the action of the indicator menu item must have state with type (sssb)");
if (state)
g_variant_unref (state);