Second patch out of 3 patches... This one fixes a problem in the escher peer, when we paint over a pixmaps.
The X11 specs says that the image has to be fully contained in the pixmaps, or a nice BatMatch is all we get :) (see the xlib::getImage function for details if you are interested). Again, the full changelog for all the patchset follows. Thanks, Mario 2008-06-15 Mario Torre <[EMAIL PROTECTED]> * gnu/java/awt/java2d/AbstractGraphics2D.java (setColor): delegate to setPaint. (setPaint): fix to set paint context and foreground color. (imageCache): new field. (drawImage): new codepath for scaling images. (prepareImage): new method. (getPaintContext): set paintContext appropriately. * gnu/java/awt/java2d/RasterGraphics.java (renderScanline): new method, override from superclass to detect correct value of y while rendering the scanline. * gnu/java/awt/java2d/ScanlineConverter.java (renderShape): revert previous patch. * gnu/java/awt/peer/x/XEventPump.java (findMouseEventTarget): new method. (handleButtonPress): use of findMouseEventTarget to detect the correct target. (handleButtonRelease): likewise. * gnu/java/awt/peer/x/XGraphics2D.java (rawDrawImage): clip the target image so that it is completely contained in the destination pixmaps, as per X11 specification. * gnu/java/awt/peer/x/XToolkit.java (createTextField): method implemented. (createButton): likewise. (prepareImage): likewise. (createLabel): likewise. (checkImage): likewise. (createTextArea): likewise. (createCheckbox): likewise. (checkHeadLess): new method. * gnu/javax/imageio/bmp/BMPImageWriter.java (write): don't close the stream. * gnu/javax/imageio/bmp/BMPImageWriterSpi.java (names): added new names to the list of known names for BMP. * java/awt/image/WritableRaster.java (createWritableTranslatedChild): * javax/imageio/ImageIO.java (write): call dispose on ImageWriter after writing of the image. -- Mario Torre, Software Developer, http://www.jroller.com/neugens/ aicas Allerton Interworks Computer Automated Systems GmbH Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany http://www.aicas.com * Tel: +49-721-663 968-53 pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF USt-Id: DE216375633, Handelsregister HRB 109481, AG Mannheim Geschäftsführer: Dr. James J. Hunt Please, support open standards: http://opendocumentfellowship.org/petition/ http://www.nosoftwarepatents.com/
### Eclipse Workspace Patch 1.0 #P classpath Index: gnu/java/awt/peer/x/XGraphics2D.java =================================================================== RCS file: /sources/classpath/classpath/gnu/java/awt/peer/x/XGraphics2D.java,v retrieving revision 1.11 diff -u -r1.11 XGraphics2D.java --- gnu/java/awt/peer/x/XGraphics2D.java 7 May 2008 14:21:57 -0000 1.11 +++ gnu/java/awt/peer/x/XGraphics2D.java 15 Jun 2008 17:54:47 -0000 @@ -394,9 +394,23 @@ xdrawable.put_image(xgc, zpixmap, x, y); imageCache.put(image, zpixmap); } else { - ZPixmap zpixmap = (ZPixmap) xdrawable.image(x, y, w, h, - 0xffffffff, - gnu.x11.image.Image.Format.ZPIXMAP); + + // TODO optimize reusing the rectangles + Rectangle source = + new Rectangle(0, 0, xdrawable.width, xdrawable.height); + Rectangle target = new Rectangle(x, y, w, h); + + Rectangle destination = source.intersection(target); + + x = destination.x; + y = destination.y; + w = destination.width; + h = destination.height; + + ZPixmap zpixmap = + (ZPixmap) xdrawable.image(x, y, w, h, + 0xffffffff, + gnu.x11.image.Image.Format.ZPIXMAP); for (int yy = 0; yy < h; yy++) { for (int xx = 0; xx < w; xx++)