List<Rectangle> (List<Rectangle> list, Point point, Window... windows) { if (windows != null) { for (Window window : windows) { Rectangle bounds = getShadowBounds(point, window); if (bounds != null) { if (list == null) list = new ArrayList<>(); list.add(bounds); } list = getShadows(list, point, window.getOwnedWindows()); } } return list; }