- paint_widgets should not draw invisible children

Updates `paint_widgets` to simply return (having done nothing) if the underlying widget is not visible.