Quoting Troels Henriksen <
athas@sigkill.dk>:
wagnerdm@seas.upenn.edu writes:
That strategy doesn't work when the layout of all the windows changes,
since a window cannot be mapped at two places (and, potentially,
sizes!) at once.
You could dump the contents of the workspace region to a pixmap, render
that pixmap to a new (unmanaged) window covering the entire workspace,
perform window movement/mapping behind it and unmap the covering window
at the end. This would work, but it's ugly and complex. I doubt a
simple and robust solution to this aesthetic issue can be conceived.
Cute. The generalization of this idea leads directly to a simple, robust solution: never unmap clients, and using OpenGL compositing to hide them instead. ;-)
It's worth noting that a number of desktop environments *have* moved to OpenGL for window management; I don't know if they use compositing per se, but windows are often implemented as OpenGL textures so they can be manipulated this way.