On second thoughts, the real solution is to make subwindows transient-for the main window
Remove transient-for everywhere that doesn't now need to set it explicitly