Hi there, I removed some 'optimization' in coalescePaintEvents, that tried to not coalesce paint events, depending on the area of the spanned old and new damaged rectangle. I played a little with the settings and different approaches to optimizing this and the outcome was that the best use experience is achieved when there is no optimization at all, which means coalescing all paint events on the eventqueue for the same component.
BTW: The GTK peers don't seem to send PaintEvents at all, and instead call Component.update() and Component.paint() directly, which is clearly a bug. 2006-01-27 Roman Kennke <[EMAIL PROTECTED]> * java/awt/Component.java (coalescePaintEvent): Don't try to optimize coalescing. This hurts more than it helps. Cheers, Roman
Index: java/awt/Component.java =================================================================== RCS file: /cvsroot/classpath/classpath/java/awt/Component.java,v retrieving revision 1.92 diff -u -r1.92 Component.java --- java/awt/Component.java 13 Jan 2006 21:18:13 -0000 1.92 +++ java/awt/Component.java 27 Jan 2006 09:31:38 -0000 @@ -4925,16 +4925,6 @@ Rectangle r1 = queuedEvent.getUpdateRect(); Rectangle r2 = newEvent.getUpdateRect(); Rectangle union = r1.union(r2); - - int r1a = r1.width * r1.height; - int r2a = r2.width * r2.height; - int ua = union.width * union.height; - - if (ua > (r1a+r2a)*2) - return null; - /* The 2 factor should maybe be reconsidered. Perhaps 3/2 - would be better? */ - newEvent.setUpdateRect(union); return newEvent; }