Bug 26594 - AWT repaint fails to call update() for Lightweights
Summary: AWT repaint fails to call update() for Lightweights
Status: RESOLVED FIXED
Alias: None
Product: classpath
Classification: Unclassified
Component: awt (show other bugs)
Version: 0.90
: P3 normal
Target Milestone: 0.91
Assignee: Thomas Fitzsimmons
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-07 13:47 UTC by Norman Hendrich
Modified: 2006-05-07 20:26 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2006-03-07 20:33:20


Attachments
testcase to demonstrate the bug (2.30 KB, text/plain)
2006-03-07 13:48 UTC, Norman Hendrich
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Norman Hendrich 2006-03-07 13:47:44 UTC
See the attached testcase for a simple animation on an AWT component.
Please edit the file to uncomment either the 

LCDCanvas extends Canvas   or
LCDCanvas extends Panel

lines. LCDCanvas is an inner class, but this shouldn't matter.

When running with the reference implementation, repainting calls the
update( Graphics ) method, which in turn dispatches to paintMatrix(),
and the animation runs flicker-free. The paint() method is only called
after external events, e.g. resizing the window.

Running with jamvm+classpath (cvs 2006.02.28) shows that repainting 
directly calls paint( Graphics ). This is wrong, and results in enormous
flickering. This will break applications whose painting algorithms make
use of the update() method.

Note that jamvm+classpath works correctly for heavyweight components, 
as can be seen by uncommenting the "LCDCanvas extends Canvas" line and
recompiling.
Comment 1 Norman Hendrich 2006-03-07 13:48:09 UTC
Created attachment 10982 [details]
testcase to demonstrate the bug
Comment 2 Lillian Angel 2006-05-03 18:30:36 UTC
This is fixed