From: Matti Tahvonen Date: Wed, 13 Feb 2008 07:57:09 +0000 (+0000) Subject: fixes #1409 X-Git-Tag: 6.7.0.beta1~5046 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e75ac50210a61708290890cd75e82ab65923328e;p=vaadin-framework.git fixes #1409 svn changeset:3786/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java index e40be981c9..0874a38e6e 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IOrderedLayout.java @@ -105,6 +105,8 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container { final Iterator newIt = uidlWidgets.iterator(); final Iterator newUidl = uidl.getChildIterator(); + final ArrayList paintedWidgets = new ArrayList(); + Widget oldChild = null; while (newIt.hasNext()) { final Widget child = (Widget) newIt.next(); @@ -116,7 +118,9 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container { while (oldIt.hasNext()) { oldChild = (Widget) oldIt.next(); // now oldChild is an instance of Paintable - if (uidlWidgets.contains(oldChild)) { + if (paintedWidgets.contains(oldChild)) { + continue; + } else if (uidlWidgets.contains(oldChild)) { break; } else { removePaintable((Paintable) oldChild); @@ -148,6 +152,7 @@ public abstract class IOrderedLayout extends ComplexPanel implements Container { insert(child, index); } ((Paintable) child).updateFromUIDL(childUidl, client); + paintedWidgets.add(child); } // remove possibly remaining old Paintable object which were not updated while (oldIt.hasNext()) {