Lightweight Components not repainting after recent Classpath merge

Roman Kennke roman@kennke.org
Mon Feb 6 21:12:00 GMT 2006


Hi Scott,

Am Montag, den 06.02.2006, 15:04 -0500 schrieb Scott Gilbertson:
> With an older GCJ build, or with the Sun JRE, the attached program works
> fine -- you'll see a yellow box move along, with the text changing under it,
> as three lightweight components repaint in succession.  With my Jan 24 build
> from svn, using both xlib and gtk peers, the boxes only repaint if you do
> something to force the entire frame to repaint (like re-sizing it).
> 
> The problem appears to be in the Classpath code:
> gnu.java.awt.peer.GLightweightPeer.repaint needs to do what
> java.awt.Component.repaint used to do.  Something like:
> 
>   public void repaint(long tm, int x, int y, int width, int height)
>   {
>     Component p = comp.getParent ();
>     if (p != null)
>       p.repaint(0, x + comp.getX(), y + comp.getY(), width, height);
>   }
> 
> Should I bundle it in with my (hopefully) upcoming "get xlib peers working
> again" commit, submit it as a separate patch, or let a Classpath hacker take
> care of it?

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.

I will look into your issues tomorrow when I'm back at work.
Promised :-) I was so very busy the last couple of days/weeks...

Roman




More information about the Java mailing list