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 gtk.global.mainDoEvent.
Depending on the type of event, existence of modal dialogs, grabs, etc.,
the event may be propagated; if so, this function is used.
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
gdk.window.Window.invalidateRect or gtk.widget.Widget.queueDraw instead
of making up expose events.
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 gtk.global.mainDoEvent. Depending on the type of event, existence of modal dialogs, grabs, etc., the event may be propagated; if so, this function is used.
gtk.global.propagateEvent calls gtk.widget.Widget.event on each widget it decides to send the event to. So gtk.widget.Widget.event is the lowest-level function; it simply emits the #GtkWidget::event and possibly an event-specific signal on a widget. gtk.global.propagateEvent is a bit higher-level, and gtk.global.mainDoEvent 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 gdk.window.Window.invalidateRect or gtk.widget.Widget.queueDraw instead of making up expose events.