diff options
author | Nick Dedekind <nicholas.dedekind@gmail.com> | 2013-07-30 20:49:44 +0100 |
---|---|---|
committer | Nick Dedekind <nicholas.dedekind@gmail.com> | 2013-07-30 20:49:44 +0100 |
commit | 37e62467aaa50babb48a45dcba8ab3ce5f5a7ec8 (patch) | |
tree | 8c280e13bf8e256ece6556a572cc964eba728750 /libqmenumodel/src/gtk/gtkmenutrackeritem.c | |
parent | 56374f1cfdbe68658a139cfad9dac8936f6ae60e (diff) | |
download | qmenumodel-37e62467aaa50babb48a45dcba8ab3ce5f5a7ec8.tar.gz qmenumodel-37e62467aaa50babb48a45dcba8ab3ce5f5a7ec8.tar.bz2 qmenumodel-37e62467aaa50babb48a45dcba8ab3ce5f5a7ec8.zip |
Added menu action updateState
Diffstat (limited to 'libqmenumodel/src/gtk/gtkmenutrackeritem.c')
-rw-r--r-- | libqmenumodel/src/gtk/gtkmenutrackeritem.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libqmenumodel/src/gtk/gtkmenutrackeritem.c b/libqmenumodel/src/gtk/gtkmenutrackeritem.c index c14bbb8..7187921 100644 --- a/libqmenumodel/src/gtk/gtkmenutrackeritem.c +++ b/libqmenumodel/src/gtk/gtkmenutrackeritem.c @@ -685,6 +685,27 @@ gtk_menu_tracker_item_activated (GtkMenuTrackerItem *self) g_variant_unref (action_target); } +void +gtk_menu_tracker_item_update_state (GtkMenuTrackerItem *self, GVariant *value) +{ + const gchar *action_name; + + g_return_if_fail (GTK_IS_MENU_TRACKER_ITEM (self)); + + g_menu_item_get_attribute (self->item, G_MENU_ATTRIBUTE_ACTION, "&s", &action_name); + + if (self->action_namespace) + { + gchar *full_action; + + full_action = g_strjoin (".", self->action_namespace, action_name, NULL); + g_action_group_change_action_state (G_ACTION_GROUP (self->observable), full_action, g_variant_ref(value)); + g_free (full_action); + } + else + g_action_group_change_action_state (G_ACTION_GROUP (self->observable), action_name, g_variant_ref(value)); +} + typedef struct { GtkMenuTrackerItem *item; |