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