### Method

# Clutter Event get_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.

#### Parameters

`button_state`

  Type: `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`

  Type: `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`

  Type: `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`

  Type: `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`

  Type: `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.