MGS notes that if you are creating a transient window, the full 'transient effect' may not kick in properly until the window has been in a fully unmapped state. It's possible that you may not even notice that it's not fully transient. Just setting the transient flag before the window is initially mapped may not have the full desired result.
From my understanding:
Some of these (probably just 5) may be dependent on the window manager. If your window is not fully transient (as mentioned above) 1, 3 and/or 5 may not happen.
Of course, I've probably got this all wrong, and I should read the ICCCM.
If you're writing code to create a transient window, you should either:
I favor the second approach, as follows:
toplevel .t wm withdraw .t update idletasks wm transient .t . wm deiconify .t