Containers that enact a layout policy, like GtkBox
, GtkGrid
, or GtkListBox
, don’t typically respond to events, leaving it to their children widgets. That’s why widgets like GtkEventBox
exist in the first place.
Widgets in GTK3 don’t really use input-output
windows, unless they both need to draw something and respond to events. Drawing on a real GdkWindow
introduces limitations, as the rendering gets clipped to the window’s region, for instance.
The typical scenarios are:
- no window: draws on the parent’s surface, does not react to events
- input-only window: draws on the parent’s surface, reacts to events
- input-output window: draws on its own surface, reacts to events
Most widgets in GTK3 belong to the first two groups, and very few to the last one.