static AutoCloseable tempOnWindowStateChanged(Component c, Runnable r) { ret c == null ? null : swing(() -> { Window w = getWindow(c); if (w == null) null; WindowListener l = new WindowAdapter { public void windowIconified(WindowEvent e) { temp tempRememberListener(w, 'removeWindowListener, this); pcallF(r); } }; w.addWindowListener(l); ret autoCloseable { swing { w.removeWindowListener(l); } }; }); }