diff options
author | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-10-29 22:49:21 +0000 |
---|---|---|
committer | Andrew John Hughes <gnu_andrew@member.fsf.org> | 2006-10-29 22:49:21 +0000 |
commit | e36d2a50b5a1a677c7ecaf926e73a5dac386c1ef (patch) | |
tree | 9649a7997f35624c829eccad8c84c84e9c8e3fb9 /java/awt/Container.java | |
parent | be24db70d4ff66302f560e12913f5b71acf3c12c (diff) | |
download | classpath-e36d2a50b5a1a677c7ecaf926e73a5dac386c1ef.tar.gz |
2006-10-29 Andrew John Hughes <gnu_andrew@member.fsf.org>
* Merge of HEAD --> generics for 2006/10/04-2006/10/29.
Diffstat (limited to 'java/awt/Container.java')
-rw-r--r-- | java/awt/Container.java | 62 |
1 files changed, 36 insertions, 26 deletions
diff --git a/java/awt/Container.java b/java/awt/Container.java index 3d460baaf..83d9f7b78 100644 --- a/java/awt/Container.java +++ b/java/awt/Container.java @@ -43,6 +43,7 @@ import java.awt.event.ContainerEvent; import java.awt.event.ContainerListener; import java.awt.event.HierarchyEvent; import java.awt.event.KeyEvent; +import java.awt.event.MouseEvent; import java.awt.peer.ComponentPeer; import java.awt.peer.ContainerPeer; import java.awt.peer.LightweightPeer; @@ -606,11 +607,20 @@ public class Container extends Component */ public void validate() { - synchronized (getTreeLock ()) + ComponentPeer p = peer; + if (! valid && p != null) { - if (! isValid() && peer != null) + ContainerPeer cPeer = null; + if (p instanceof ContainerPeer) + cPeer = (ContainerPeer) peer; + synchronized (getTreeLock ()) { + if (cPeer != null) + cPeer.beginValidate(); validateTree(); + valid = true; + if (cPeer != null) + cPeer.endValidate(); } } } @@ -641,36 +651,36 @@ public class Container extends Component */ protected void validateTree() { - if (valid) - return; - - ContainerPeer cPeer = null; - if (peer instanceof ContainerPeer) - { - cPeer = (ContainerPeer) peer; - cPeer.beginValidate(); - } - - doLayout (); - for (int i = 0; i < ncomponents; ++i) + if (!valid) { - Component comp = component[i]; - - if (comp instanceof Container && ! (comp instanceof Window) - && ! comp.valid) + ContainerPeer cPeer = null; + if (peer instanceof ContainerPeer) { - ((Container) comp).validateTree(); + cPeer = (ContainerPeer) peer; + cPeer.beginLayout(); } - else + + doLayout (); + for (int i = 0; i < ncomponents; ++i) { - comp.validate(); + Component comp = component[i]; + + if (comp instanceof Container && ! (comp instanceof Window) + && ! comp.valid) + { + ((Container) comp).validateTree(); + } + else + { + comp.validate(); + } } - } - if (peer instanceof ContainerPeer) - { - cPeer = (ContainerPeer) peer; - cPeer.endValidate(); + if (cPeer != null) + { + cPeer = (ContainerPeer) peer; + cPeer.endLayout(); + } } /* children will call invalidate() when they are layed out. It |