summaryrefslogtreecommitdiff
path: root/java/awt/Container.java
diff options
context:
space:
mode:
authorAndrew John Hughes <gnu_andrew@member.fsf.org>2006-10-29 22:49:21 +0000
committerAndrew John Hughes <gnu_andrew@member.fsf.org>2006-10-29 22:49:21 +0000
commite36d2a50b5a1a677c7ecaf926e73a5dac386c1ef (patch)
tree9649a7997f35624c829eccad8c84c84e9c8e3fb9 /java/awt/Container.java
parentbe24db70d4ff66302f560e12913f5b71acf3c12c (diff)
downloadclasspath-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.java62
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