### Method

# Gtk Gestureset_state

#### Declaration [src]

    gboolean
    gtk_gesture_set_state (
      GtkGesture* gesture,
      GtkEventSequenceState state
    )

#### Description [src]

Sets the state of all sequences that `gesture` is currently interacting with.

Sequences start in state `GTK_EVENT_SEQUENCE_NONE`, and whenever they change state, they can never go back to that state. Likewise, sequences in state `GTK_EVENT_SEQUENCE_DENIED` cannot turn back to a not denied state. With these rules, the lifetime of an event sequence is constrained to the next four:

- None
- None → Denied
- None → Claimed
- None → Claimed → Denied

Note: Due to event handling ordering, it may be unsafe to set the state on another gesture within a `GtkGesture::begin` signal handler, as the callback might be executed before the other gesture knows about the sequence. A safe way to perform this could be:

    static void
    first_gesture_begin_cb (GtkGesture       *first_gesture,
                            GdkEventSequence *sequence,
                            gpointer          user_data)
    {
      gtk_gesture_set_state (first_gesture, GTK_EVENT_SEQUENCE_CLAIMED);
      gtk_gesture_set_state (second_gesture, GTK_EVENT_SEQUENCE_DENIED);
    }

    static void
    second_gesture_begin_cb (GtkGesture       *second_gesture,
                             GdkEventSequence *sequence,
                             gpointer          user_data)
    {
      if (gtk_gesture_get_sequence_state (first_gesture, sequence) == GTK_EVENT_SEQUENCE_CLAIMED)
        gtk_gesture_set_state (second_gesture, GTK_EVENT_SEQUENCE_DENIED);
    }

If both gestures are in the same group, just set the state on the gesture emitting the event, the sequence will be already be initialized to the group’s global state when the second gesture processes the event.

#### Parameters

`state`

  Type: `GtkEventSequenceState`

  The sequence state.

#### Return value

Type: `gboolean`

`TRUE` if the state of at least one sequence was changed successfully.