Clutter.Event.get_state_full

### Method

# Clutter Eventget_state_full

#### Declaration [src]

    void
    clutter_event_get_state_full (
      const ClutterEvent* event,
      ClutterModifierType* button_state,
      ClutterModifierType* base_state,
      ClutterModifierType* latched_state,
      ClutterModifierType* locked_state,
      ClutterModifierType* effective_state
    )

#### Description [src]

Retrieves the decomposition of the keyboard state into button, base, latched, locked and effective. This can be used to transmit to other applications, for example when implementing a wayland compositor.

Available since: | 1.16

#### Parameters

`button_state` | `ClutterModifierType`
| The pressed buttons as a mask.
| The argument will be set by the function.
| The argument can be `NULL`.
| The instance takes ownership of the data, and is responsible for freeing it.
`base_state` | `ClutterModifierType`
| The regular pressed modifier keys.
| The argument will be set by the function.
| The argument can be `NULL`.
| The instance takes ownership of the data, and is responsible for freeing it.
`latched_state` | `ClutterModifierType`
| The latched modifier keys (currently released but still valid for one key press/release)
| The argument will be set by the function.
| The argument can be `NULL`.
| The instance takes ownership of the data, and is responsible for freeing it.
`locked_state` | `ClutterModifierType`
| The locked modifier keys (valid until the lock key is pressed and released again)
| The argument will be set by the function.
| The argument can be `NULL`.
| The instance takes ownership of the data, and is responsible for freeing it.
`effective_state` | `ClutterModifierType`
| The logical OR of all the state bits above.
| The argument will be set by the function.
| The argument can be `NULL`.
| The instance takes ownership of the data, and is responsible for freeing it.