The XFixes spec at http://webcvs.freedesktop.org/xlibs/FixesExt/protocol?view=markup says: Having embedded windows suddenly appear at the top level can confuse users, so XFIXES also permits these windows to remain unmapped instead of being remapped. The wording here and the implementation in HandleSaveSet (in xserver/xorg/dix/window.c) both seem to assume that something causes SaveSet windows to be unmapped by default when their parent is destroyed, and so SaveSetUnmap can be implemented by just *not* calling MapWindow() on the window. But it doesn't seem to actually work like that. HandleSaveSet needs to actually call UnmapWindow (or whatever) when saving a window with the SaveSetUnmap flag, or the window will get visibly reparented, resulting in the user confusion that the extension was supposed to be fixing. qv: http://bugzilla.gnome.org/show_bug.cgi?id=160132#c15
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
this was fixed in 722c51960dd4948b8a64f8eff115fa69da597ef9. (Hi Owen.)
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.