// assumes frame is supposed to be visible right now svoid waitForFrameClose(JFrame f) { Flag flag = null; swing { if (!isVisible(f)) ret; flag = new Flag; onFrameClose(f, flag.raise()); } flag?.waitUntilUp(); }