Method

GioActionGroupactivate_action

since: 2.28

Declaration

void
g_action_group_activate_action (
  GActionGroup* action_group,
  const gchar* action_name,
  GVariant* parameter
)

Description

Activate the named action within action_group.

If the action is expecting a parameter, then the correct type of parameter must be given as parameter. If the action is expecting no parameters then parameter must be NULL. See g_action_group_get_action_parameter_type().

If the GActionGroup implementation supports asynchronous remote activation over D-Bus, this call may return before the relevant D-Bus traffic has been sent, or any replies have been received. In order to block on such asynchronous activation calls, g_dbus_connection_flush() should be called prior to the code, which depends on the result of the action activation. Without flushing the D-Bus connection, there is no guarantee that the action would have been activated.

The following code which runs in a remote app instance, shows an example of a ‘quit’ action being activated on the primary app instance over D-Bus. Here g_dbus_connection_flush() is called before exit(). Without g_dbus_connection_flush(), the ‘quit’ action may fail to be activated on the primary instance.

// call ‘quit’ action on primary instance
g_action_group_activate_action (G_ACTION_GROUP (app), "quit", NULL);

// make sure the action is activated now
g_dbus_connection_flush ();

g_debug ("Application has been terminated. Exiting.");

exit (0);

Available since: 2.28

Parameters

action_name

Type: const gchar*

The name of the action to activate.

The data is owned by the caller of the function.
The value is a NUL terminated UTF-8 string.
parameter

Type: GVariant

Parameters to the activation.

The argument can be NULL.
The data is owned by the caller of the function.