EventController

class EventController(**properties: Any)

Superclasses: Object

Subclasses: DropControllerMotion, DropTarget, DropTargetAsync, EventControllerFocus, EventControllerKey, EventControllerLegacy, EventControllerMotion, EventControllerScroll, Gesture, PadController, ShortcutController

GtkEventController is the base class for event controllers.

These are ancillary objects associated to widgets, which react to GdkEvents, and possibly trigger actions as a consequence.

Event controllers are added to a widget with add_controller. It is rarely necessary to explicitly remove a controller with remove_controller.

See the chapter on input handling for an overview of the basic concepts, such as the capture and bubble phases of event propagation.

Methods

class EventController
get_current_event() Event | None

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

At other times, None is returned.

get_current_event_device() Device | None

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

At other times, None is returned.

get_current_event_state() ModifierType

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

At other times, 0 is returned.

get_current_event_time() int

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

At other times, 0 is returned.

get_name() str | None

Gets the name of controller.

get_propagation_limit() PropagationLimit

Gets the propagation limit of the event controller.

get_propagation_phase() PropagationPhase

Gets the propagation phase at which controller handles events.

get_widget() Widget

Returns the GtkWidget this controller relates to.

reset() None

Resets the controller to a clean state.

set_name(name: str | None = None) None

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

Parameters:

name – a name for controller

set_propagation_limit(limit: PropagationLimit) None

Sets the event propagation limit on the event controller.

If the limit is set to SAME_NATIVE, the controller won’t handle events that are targeted at widgets on a different surface, such as popovers.

Parameters:

limit – the propagation limit

set_propagation_phase(phase: PropagationPhase) None

Sets the propagation phase at which a controller handles events.

If phase is NONE, no automatic event handling will be performed, but other additional gesture maintenance will.

Parameters:

phase – a propagation phase

set_static_name(name: str | None = None) None

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

Added in version 4.8.

Parameters:

name – a name for controller, must be a static string

Properties

class EventController
props.name: str

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

props.propagation_limit: PropagationLimit

The limit for which events this controller will handle.

props.propagation_phase: PropagationPhase

The propagation phase at which this controller will handle events.

props.widget: Widget

The widget receiving the GdkEvents that the controller will handle.