I don't really understand how Front Row violates the normal window
stacking order, etc, but it seems that it's wired deeply enough in the
OS that Front Row is always on top. The only thing
I've found which works is to hide front row.
The relevant code is from frontpython's Utilities.py:
# Start hiding the display
frController = BRAppManager.sharedApplication().delegate()
# We use continue, since it seems to skip the -slow- fade out.
# It also doesn't seem to kill the controller stack!
self.fireMethod( frController, "_continueDestroyScene:", None )
That causes Front Row to hide itself, showing your desktop (and
presumably the new NSWindow you want to show).