[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [cp-patches] FYI: Some AWT fixes
From: |
Thomas Fitzsimmons |
Subject: |
Re: [cp-patches] FYI: Some AWT fixes |
Date: |
Fri, 05 Aug 2005 13:58:57 -0400 |
On Fri, 2005-08-05 at 17:36 +0200, Roman Kennke wrote:
> Hi,
>
> I've started to look deeper into AWT and how it should work and how it
> actually works in Classpath. There are some issues that are plain wrong.
> This patch fixes some of them and also contains some improvements with
> the caching of layouts.
>
> I have made some tests with the update() and paint() methods and found
> that they actually work different than is documented in the spec. The
> correct behaviour (according to my tests) is:
>
> Component.update(): Clears the background only when it is a toplevel
> component or a lightweight component. Heavyweights are 100%
> selfresponsible for that (as for everything other as we will see).
>
> Container.update(): Calls super.update() only when we are a top-level
> container, otherwise directly jump into paint().
>
> Container.visitChildren(): All children must be visited, even
> Containers. The reason for not visiting the Containers has been that it
> avoided double-painting heavyweights. However, heavyweight component
> must not paint themselves when paint() is called. This is implemented
> wrong here. It is actually the other way around: If the toolkit thinks
> it has to paint a component, then it calls paint() _after_ the component
> was painted, giving subclasses a chance to paint over the component. So,
> paint() only acts as a callback here. This must also be fixed later. I
> don't touch this for now since I think this could break the AWT.
Thanks for testing this; are you planning to commit these tests to
Mauve? I think it would be useful to have them there for reference.
Tom