+ GtkPizza *pizza;
+ GtkPizzaChild *child;
+ GdkRectangle child_area;
+ GList *children;
+
+ g_return_if_fail (widget != NULL);
+ g_return_if_fail (GTK_IS_PIZZA (widget));
+
+ pizza = GTK_PIZZA (widget);
+
+ /* Sometimes, We handle all expose events in window.cpp now. */
+ if (pizza->external_expose)
+ return;
+
+ children = pizza->children;
+ if ( !(GTK_WIDGET_APP_PAINTABLE (widget)) &&
+ (pizza->clear_on_draw))
+ {
+ gdk_window_clear_area( pizza->bin_window,
+ area->x, area->y, area->width, area->height);
+ }
+
+ while (children)
+ {
+ child = children->data;
+ children = children->next;
+
+ if (gtk_widget_intersect (child->widget, area, &child_area))
+ gtk_widget_draw (child->widget, &child_area);
+ }