topmost windows

Deron Johnson Deron.Johnson at Sun.COM
Tue Jan 10 11:56:10 PST 2006


For what it's worth, I've prototyped the composite priority window idea
and it works like a charm for LG. The change was pretty simple. I just
needed to add another attribute to CompositeChangeWindowAttributes
(which I was prototyping anyway) and then change window.c:RealChildHead
to callt he following function:

WindowPtr
compRealChildHead(WindowPtr pWin)
{
    CompWindowAttrPtr cwattr;
    WindowPtr pChild, pChildBefore;

    if (!pWin->parent &&
	(screenIsSaved == SCREEN_SAVER_ON) &&
	(HasSaverWindow (pWin->drawable.pScreen->myNum))) {

	/*
	** First child is the screen saver; see if next child
	** is the composite priority window.
	*/

	pChildBefore = pWin->firstChild;
	pChild = pChildBefore->nextSib;

    } else {
	pChildBefore = NullWindow;
	pChild = pWin->firstChild;
    }

    if (!pChild) {
	return NullWindow;
    }

    cwattr = GetCompWindowAttr(pChild);
    if (cwattr && cwattr->priorityWindow) {
	return pChild;
    } else {
	return pChildBefore;
    }
}

The topmost window idea will work for LG equally well.




More information about the xorg-arch mailing list