// assumes frame is supposed to be visible right now svoid waitForFrameClose(JFrame f) { new Var flag; new CloseablesHolder closer; swing { if (!isVisible(f)) ret; flag.set(new Flag); closer.add(tempOnFrameClose(f, flag->raise())); } temp closer; if (flag.has()) flag->waitUntilUp(); }