Composite and bit gravity

Soeren Sandmann sandmann at daimi.au.dk
Fri Nov 12 14:46:38 PST 2004


When a redirected window is resized, a new pixmap is allocated, but
currently the old bits are not copied to the new pixmap until they are
needed by CopyWindow. This breaks bit gravity, which at least GTK+,
and I'd assume other toolkits, rely on. The pixels are simply not
there when the gravity code runs.

The attached patch fixes this by copying the pixels immediately.

Another fix might be to somehow make the gravity code read the old
pixels, but I think that would be more complicated. We can do this
later if/when pixel copying becomes a bottleneck.

And

% diffstat gravity.patch
 compalloc.c  |   26 ++++++++++++++++++++-
 compint.h    |    1
 compwindow.c |   70 ----------------------------------------------------------- 3 files
 changed, 25 insertions(+), 72 deletions(-)

is always nice.


Søren

-------------- next part --------------
A non-text attachment was scrubbed...
Name: gravity.patch
Type: text/x-patch
Size: 5032 bytes
Desc: Patch
URL: <http://lists.x.org/archives/xorg/attachments/20041112/da4fcfd7/attachment.bin>


More information about the xorg mailing list