// assumes frame is supposed to be visible right now svoid waitForFrameClose(JFrame f) { new Flag flag; new CloseablesHolder closer; swing { if (!isShowing(f)) flag.raise(); else closer.add(tempOnFrameClose(f, flag)); } temp closer; flag.waitUntilUp(); }