Don't break grab and focus state for a window when redirecting it.
Composite uses an unmap/map cycle to trigger backing pixmap allocation and cliprect recomputation when a window is redirected or unredirected. To avoid protocol visible side effects, map and unmap events are disabled temporarily. However, when a window is unmapped it is also removed from grabs and loses focus, but these state changes are not disabled. This change supresses the unmap side effects during the composite unmap/map cycle and fixes this bug: http://bugzilla.gnome.org/show_bug.cgi?id=488264 where compiz would cause gnome-screensaver to lose its grab when compiz unredirects the fullscreen lock window.
This commit is contained in:
parent
dc30ade649
commit
bcbfd619f8
|
@ -3023,7 +3023,8 @@ UnrealizeTree(
|
|||
}
|
||||
#endif
|
||||
(* Unrealize)(pChild);
|
||||
DeleteWindowFromAnyEvents(pChild, FALSE);
|
||||
if (MapUnmapEventsEnabled(pWin))
|
||||
DeleteWindowFromAnyEvents(pChild, FALSE);
|
||||
if (pChild->viewable)
|
||||
{
|
||||
#ifdef DO_SAVE_UNDERS
|
||||
|
|
Loading…
Reference in New Issue
Block a user