pub fn propagate_event(widget: &impl IsA<Widget>, event: &mut Event)
Expand description

Sends an event to a widget, propagating the event to parent widgets if the event remains unhandled.

Events received by GTK+ from GDK normally begin in main_do_event(). Depending on the type of event, existence of modal dialogs, grabs, etc., the event may be propagated; if so, this function is used.

propagate_event() calls WidgetExt::event() on each widget it decides to send the event to. So WidgetExt::event() is the lowest-level function; it simply emits the signal::Widget::event and possibly an event-specific signal on a widget. propagate_event() is a bit higher-level, and main_do_event() is the highest level.

All that said, you most likely don’t want to use any of these functions; synthesizing events is rarely needed. There are almost certainly better ways to achieve your goals. For example, use Window::invalidate_rect() or WidgetExt::queue_draw() instead of making up expose events.

widget

a Widget

event

an event