Component child = children[i];
if(child == c) {
break;
}
if(child.isVisible()) {
Acceptance accept = filter.accept(child);
if(accept == Acceptance.YES) {
tempRectangle.setBounds(child.getX(), child.getY(), child.getWidth(), child.getHeight());
shape = UIUtils.subtract(shape, SwingUtilities.convertRectangle(parent, tempRectangle, component));
} else if(accept == Acceptance.TEST_CHILDREN && child instanceof Container) {
shape = getChildrenVisibleArea(component, filter, shape, (Container)child, null);