GtkContainer::propagate_expose

void propagate_expose(GtkWidget child, event);

When a container receives an expose event, it must send synthetic expose events to all children that don't have their own GdkWindows. This function provides a convenient way of doing this. A container, when it receives an expose event, calls propagate_expose once for each child, passing in the event the container received.

propagate_expose() takes care of deciding whether an expose event needs to be sent to the child, intersecting the event's area with the child area, and sending the event.

In most cases, a container can simply either simply inherit the expose implementation from GtkContainer, or, do some drawing and then chain to the expose implementation from GtkContainer.