Finishing Composite to handle transformed windows

Keith Packard keithp at keithp.com
Fri Jan 6 21:14:35 PST 2006


On Fri, 2006-01-06 at 19:59 -0800, Andy Ritger wrote:

> What if windows were *not* clipped by redirected children (atleast
> for manual redirection)? 

This is appealing to me as well; in some sense, it is the parent window
into which the child will be painted in any case, making the manual
redirection not clip out the parent area, and yet still clip any
non-redirected siblings avoids the issues with smashing valid window
contents inadvertently.

However, you *cannot* make all windows children of a non-root window.
Menus and other override redirect windows are always children of the
root. So, unless we assert that the compositing manager will draw to the
root, there is no way this semantic will work in this case.

I think we need to discover whether or not drawing to the root window is
well enough supported to require this as the target drawable. If it is,
we can either make the above change or extend GLX to support
IncludeInferiors rendering and be done with this problem. 

If we decide that the compositing manager must be allowed to draw to a
non-root window, then we must create a solution for that window to hold
the correct clip list.

> As a side benefit, other composite managers won't need to use
> IncludeInferiors, which feels a little kludgy to me.

Hmm. I'm thinking of a situation where some windows are ManualRedirect
and others are not redirected, or are AutomaticRedirect. In this case,
the desire is to have the ManaualRedirect manager paint child content
directly to the parent window. In this case, the parent must be clipped
by the area of any non-ManaulRedirect windows which aren't otherwise
clipped by ManualRedirect windows. That's widgey; you've got areas of
the parent covered by children, which because they are obscured by a
ManualRedirect child are now not obscuring the Parent. I think that's
easy enough to implement, but it sure feels weird...

> A variation on the above that might provide more flexibility is to
> turn this decision of whether redirected children clip the parent
> into an attribute that is specified at redirection time.

I'd like to avoid useless options of this nature, and I'm not sure I see
a use case at this point for this mode.

-keith

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.x.org/archives/xorg/attachments/20060106/e8bfaf11/attachment.pgp>


More information about the xorg mailing list