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