-
Committer:
Sam Spilsbury
-
Date:
2011-05-26 13:50:00 UTC
-
Revision ID:
sam.spilsbury@canonical.com-20110526135000-bbxu92y0gs80fke7
XSync right after configureXWindow in cases where we
need to immediately reorder the window stack.
This isn't a real fix, but at least fixes the following situation without
breaking the API and ABI
Windows stacked A, B, C
Plugin does: C->raise (), B->raise (), A->raise ()
Window list should read at this point: ... C, B, A ... (screen->windows ())
However, the output buffer hasn't been flushed at this point
so server side we will have A, B, C.
Now if a sneaky client tries to restack A above C, we will get the
ConfigureRequest for that, and instead of getting B, C, A like the client
expects, we'll actually get C, B, A.
The real solution is to have a list of windows last sent to the server
and a list of windows last recieved by it. That way plugins can
mess with the internal stack all they want, but when recieving
events for X as to the actual state of things, they can restack relative
to the server list.