diff options
-rw-r--r-- | src/idoactionhelper.c | 25 | ||||
-rw-r--r-- | src/idoactionhelper.h | 3 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/idoactionhelper.c b/src/idoactionhelper.c index fdd9479..f0e300b 100644 --- a/src/idoactionhelper.c +++ b/src/idoactionhelper.c @@ -401,3 +401,28 @@ ido_action_helper_activate (IdoActionHelper *helper) if (helper->actions && helper->action_name) g_action_group_activate_action (helper->actions, helper->action_name, helper->action_target); } + +/** + * ido_action_helper_change_action_state: + * @helper: an #IdoActionHelper + * @state: the proposed new state of the action + * + * Requests changing the state of the action that is associated with + * @helper to @state. + * + * If @state is floating, it is consumed. + */ +void +ido_action_helper_change_action_state (IdoActionHelper *helper, + GVariant *state) +{ + g_return_if_fail (IDO_IS_ACTION_HELPER (helper)); + g_return_if_fail (state != NULL); + + g_variant_ref_sink (state); + + if (helper->actions && helper->action_name) + g_action_group_change_action_state (helper->actions, helper->action_name, state); + + g_variant_unref (state); +} diff --git a/src/idoactionhelper.h b/src/idoactionhelper.h index 22cdcae..27dafb7 100644 --- a/src/idoactionhelper.h +++ b/src/idoactionhelper.h @@ -41,4 +41,7 @@ GVariant * ido_action_helper_get_action_target (IdoActionHelper *helper void ido_action_helper_activate (IdoActionHelper *helper); +void ido_action_helper_change_action_state (IdoActionHelper *helper, + GVariant *state); + #endif |