/* Draw parent window, with all child windows, within dirty area. 
This function is a shortcut to ask a window's parent to draw all its children. However, the area to draw is given in the same coordinate system as the child window, i.e. point 0,0 is top left corner of the parent window. This function is used e.g. when rearranging child windows or to draw partly transparent windows. */
static void win_draw_parent(struct win_window *child, const struct win_area *dirty_area)
/* Draw parent window, with all child windows, within dirty area. 
This function is a shortcut to ask a window's parent to draw all its children. However, the area to draw is given in the same coordinate system as the child window, i.e. point 0,0 is top left corner of the parent window. This function is used e.g. when rearranging child windows or to draw partly transparent windows. */
static void win_draw_parent(struct win_window *child, const struct win_area *dirty_area)
{
	struct win_area area = *dirty_area;
	if (win_translate_area_to_parent(&area, child->parent)) {
		win_draw(child->parent, &area);
	}
}