--- /home/tromey/gnu/Nightly/classpath/classpath/gnu/java/awt/peer/gtk/GtkImage.java 2004-08-09 02:25:57.000000000 -0600 +++ gnu/java/awt/peer/gtk/GtkImage.java 2004-11-25 02:23:50.000000000 -0700 @@ -230,7 +230,7 @@ int offset, int scansize) { setPixels (x, y, width, height, cm, convertPixels (pixels), offset, - scansize); + scansize); if (observer != null) observer.imageUpdate (this, @@ -255,7 +255,8 @@ if (scansize == width && height == 1) { - System.arraycopy (pixels, offset, + // Copy contents of pixels array into pixel cache. + System.arraycopy (pixels, offset, pixelCache, y * this.width + x, pixels.length - offset); } @@ -274,7 +275,7 @@ if (status == ImageConsumer.STATICIMAGEDONE && isCacheable) isLoaded = true; - if (status == ImageConsumer.SINGLEFRAMEDONE) + if (status == ImageConsumer.SINGLEFRAME) isCacheable = false; if (observer != null) @@ -289,7 +290,7 @@ -1, -1, -1, -1); } - if (source != null) + if (source != null && status != ImageConsumer.SINGLEFRAME) source.removeConsumer (this); }