window-actor: Make culling of opaque windows X11 only

Robert Mader requested to merge rmader/mutter:window-culling into master

It is only useful for clients that do not set an opaque region but still can be detected as being opaque. This is helpful for X11 clients as opaque regions only got introduced around 2012 and only as part of EWMH and are thus not used in many cases. On Wayland however opaque regions have been part of the core protocol from the beginnig and we can assume they are used more commonly.

As the current implementation in MetaWindowActor does not handle Wayland subsurfaces well, instead of adding more complexity just move it to MetaWindowActorX11.

While on it, take the shape region into account that is set when clients use the X Nonrectangular Window Shape Extension Protocol, so we have exact culling with those clients.

Fixes #1010 (closed), fixes #737 (closed)

Edited by Robert Mader

Merge request reports