Possible bug in Composite extension
Amir Bukhari
ufz6 at rz.uni-karlsruhe.de
Wed Jan 5 15:36:20 PST 2005
I have filed a bug in bugzilla describe this issue. you can access it at
this link:
https://bugs.freedesktop.org/show_bug.cgi?id=2230
On Wed, 2005-01-05 at 10:46 -0800, Keith Packard wrote:
> Around 12 o'clock on Jan 5, Amir Bukhari wrote:
>
> > I have made a modification to compReallocPixmap, so that it copy
> > reasonable pixel from the old pixmap to new pixmap.
>
> Composite already has two existing mechanisms to try and get this right,
> and yet still things remain broken. The server will call CopyWindow to
> capture the old bits when they move, and Composite already copies data
> from the parent into the new pixmap so that backgroundNone works correctly
> in a simple 2D compositing environment.
>
> Because of the effect of bitGravity, I think we will need some help from
> DIX to know what the right bits to copy are.
>
> If you look at miSlideAndSize window, you'll see a special case that
> doesn't call the CopyWindow proc for bits which 'haven't moved' on the
> screen:
>
> if (oldpt.x != x || oldpt.y != y)
> (*pWin->drawable.pScreen->CopyWindow)(pWin, oldpt, gravitate[g]);
>
>
> I suggest that just changing that to *always* call in the case of a
> redirected window might be the right solution here:
>
> if (oldpt.x != x || oldpt.y != y
> #ifdef COMPOSITE
> || pWin->redirectDraw
> #endif
> )
> (*pWin->drawable.pScreen->CopyWindow)(pWin, oldpt, gravitate[g]);
>
> Could you give this a try in your environment? The existing copy from
> parent already solves this problem in a simple 2D environment, so the bug
> isn't visible to me.
>
> -keith
>
>
More information about the xorg
mailing list