public void propagate_draw (Widget child, Context cr)

When a container receives a call to the draw function, it must send synthetic draw calls to all children that don’t have their own Windows.

This function provides a convenient way of doing this. A container, when it receives a call to its draw function, calls propagate_draw once for each child, passing in the cr the container received.

propagate_draw takes care of translating the origin of cr, and deciding whether the draw needs to be sent to the child. It is a convenient and optimized way of getting the same effect as calling draw on the child directly.

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



a Container


a child of this


Cairo context as passed to the container. If you want to use cr in container’s draw function, consider using save and restore before calling this function.