I'm having a problem where sometimes my OverrideRedirect window is not visible on the screen after XMapRaised, even though XQueryTree reports that it is on top.
The compositor may be implicated, as apparently it involves a magic window that is on top of all others that is intentionally omitted from the XQueryTree list, because the world is insane.
I have read the documentation, such as it is, and tried a few things, but there seem to be several mutually exclusive paths through the compositor, not all of which involve that magic window, so my question is:
Given the set of window managers that I am likely to encounter in the real world, what is my best bet for making my OverrideRedirect window actually appear on top of all other visible windows? (Which is literally the one and only thing that "OverrideRedirect" was supposed to mean.)
(I assume that any answer involving _NET_WM properties or ClientMessages is incorrect, as those only apply to non-OverrideRedirect windows that are managed by the window manager.)
Relatedly: which window manager in reasonably common use does the most pessimally fucked up compositor-related things, that I should test against?
Update: Interestingly, and in case this should ring any bells, when I am in this state where XMapRaised on my window does not cause it to become visible on the screen (despite XQueryTree saying that it is on top) destroying and re-creating the window does work.