Lightweight Components not repainting after recent Classpathmerge
Mon Feb 6 22:28:00 GMT 2006
> Roman wrote:
> Have you tried resyncing with the latest Classpath sources already?
> AFAIK, the latest merge is quite some time ago and I remember to have
> fixed a couple of repaint related issues in Classpath's AWT code. I
> tried the example of your previous email regarding AWT (the same as the
> attached program?) against Classpath and that seemed to work.
The last merge to the GCJ tree was January 17, 2006, using Classpath 0.20
I just had a look at java.awt.Component in the Classpath cvs browser
(revision 1.94, Feb 6, 2006).
public void repaint(long tm, int x, int y, int width, int height)
ComponentPeer p = peer;
if (p != null)
p.repaint(tm, x, y, width, height);
That's the same as in GCJ. Since
gnu.java.awt.peer.GLightweightPeer.repaint is empty (also the same as in
GCJ), p.repaint doesn't do anything. So I don't see how the latest
Classpath code can do a repaint on a lightweight.
Earlier versions (1.86, Nov 8 2005, and earlier) of java.awt.Component
called the parent's repaint, which circumvented the problem, but I think
GLightweightPeer is the right place to do that.
I have modified GLightweightPeer in my local GCJ build to call the parent's
repaint, and it makes the test program work.
More information about the Java