final Region cutChildren(Region r,final LWComponentPeer<?,?> above){
  boolean aboveFound=above == null;
  for (  final LWComponentPeer<?,?> child : getChildren()) {
    if (!aboveFound && child == above) {
      aboveFound=true;
      continue;
    }
    if (aboveFound) {
      if (child.isVisible()) {
        final Rectangle cb=child.getBounds();
        final Region cr=child.getRegion();
        final Region tr=cr.getTranslatedRegion(cb.x,cb.y);
        r=r.getDifference(tr.getIntersection(getContentSize()));
      }
    }
  }
  return r;
}

final Region cutChildren ( Region r , final LWComponentPeer < ? , ? > above ) { boolean aboveFound = above == null ; for ( final LWComponentPeer < ? , ? > child : getChildren ( ) ) { if ( ! aboveFound && child == above ) { aboveFound = true ; continue ; } if ( aboveFound ) { if ( child . isVisible ( ) ) { final Rectangle cb = child . getBounds ( ) ; final Region cr = child . getRegion ( ) ; final Region tr = cr . getTranslatedRegion ( cb . x , cb . y ) ; r = r . getDifference ( tr . getIntersection ( getContentSize ( ) ) ) ; } } } return r ; }
removes bounds of children above specific child from the region . if above is null removes all bounds of children .
