Switching from Automatic to Manual redirect needs to unmap/remap
When changing a window from automatic redirection to manual redirection, the parent clip list needs to be recomputed; the easy way to get that computed right is to unmap/map the window, just as when redirecting the window the first time. Thanks to Owen Taylor for helping diagnose this. Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
8bfd88ca61
commit
d26083fe02
|
@ -148,6 +148,16 @@ compRedirectWindow (ClientPtr pClient, WindowPtr pWin, int update)
|
|||
return BadAlloc;
|
||||
if (ccw->update == CompositeRedirectManual)
|
||||
{
|
||||
/* If the window was CompositeRedirectAutomatic, then
|
||||
* unmap the window so that the parent clip list will
|
||||
* be correctly recomputed.
|
||||
*/
|
||||
if (pWin->mapped)
|
||||
{
|
||||
DisableMapUnmapEvents (pWin);
|
||||
UnmapWindow (pWin, FALSE);
|
||||
EnableMapUnmapEvents (pWin);
|
||||
}
|
||||
if (cw->damageRegistered)
|
||||
{
|
||||
DamageUnregister (&pWin->drawable, cw->damage);
|
||||
|
|
Loading…
Reference in New Issue