mirror of
https://github.com/X11Libre/xserver.git
synced 2026-03-24 05:54:08 +00:00
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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user