### Class

# GtkEventControllerFocus

#### Description [src]

    final class Gtk.EventControllerFocus : Gtk.EventController
    {
      /* No available fields */
    }

`GtkEventControllerFocus` is an event controller to keep track of keyboard focus.

The event controller offers `GtkEventControllerFocus::enter` and `GtkEventControllerFocus::leave` signals, as well as `GtkEventControllerFocus:is-focus` and `GtkEventControllerFocus:contains-focus` properties which are updated to reflect focus changes inside the widget hierarchy that is rooted at the controllers widget.

#### Hierarchy

#### Ancestors

- GtkEventController
- GObject

#### Constructors

###### gtk_event_controller_focus_new

Creates a new event controller that will handle focus events.

#### Instance methods

###### gtk_event_controller_focus_contains_focus

Returns `TRUE` if focus is within `self` or one of its children.

###### gtk_event_controller_focus_is_focus

Returns `TRUE` if focus is within `self`, but not one of its children.

##### Methods inherited from GtkEventController (13)

###### gtk_event_controller_get_current_event

Returns the event that is currently being handled by the controller.

###### gtk_event_controller_get_current_event_device

Returns the device of the event that is currently being handled by the controller.

###### gtk_event_controller_get_current_event_state

Returns the modifier state of the event that is currently being handled by the controller.

###### gtk_event_controller_get_current_event_time

Returns the timestamp of the event that is currently being handled by the controller.

###### gtk_event_controller_get_name

Gets the name of `controller`.

###### gtk_event_controller_get_propagation_limit

Gets the propagation limit of the event controller.

###### gtk_event_controller_get_propagation_phase

Gets the propagation phase at which `controller` handles events.

###### gtk_event_controller_get_widget

Returns the `GtkWidget` this controller relates to.

###### gtk_event_controller_reset

Resets the `controller` to a clean state.

###### gtk_event_controller_set_name

Sets a name on the controller that can be used for debugging.

###### gtk_event_controller_set_propagation_limit

Sets the event propagation limit on the event controller.

###### gtk_event_controller_set_propagation_phase

Sets the propagation phase at which a controller handles events.

###### gtk_event_controller_set_static_name

Sets a name on the controller that can be used for debugging.

since: 4.8

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Properties

###### Gtk.EventControllerFocus:contains-focus

`TRUE` if focus is contained in the controllers widget.

###### Gtk.EventControllerFocus:is-focus

`TRUE` if focus is in the controllers widget itself, as opposed to in a descendent widget.

##### Properties inherited from GtkEventController (4)

###### Gtk.EventController:name

The name for this controller, typically used for debugging purposes.

###### Gtk.EventController:propagation-limit

The limit for which events this controller will handle.

###### Gtk.EventController:propagation-phase

The propagation phase at which this controller will handle events.

###### Gtk.EventController:widget

The widget receiving the `GdkEvents` that the controller will handle.

#### Signals

###### Gtk.EventControllerFocus::enter

Emitted whenever the focus enters into the widget or one of its descendents.

###### Gtk.EventControllerFocus::leave

Emitted whenever the focus leaves the widget hierarchy that is rooted at the widget that the controller is attached to.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct GtkEventControllerFocusClass {
      /* no available fields */
    }

No description available.