From e75ac50210a61708290890cd75e82ab65923328e Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Wed, 13 Feb 2008 07:57:09 +0000 Subject: [PATCH] fixes #1409 svn changeset:3786/svn branch:trunk --- .../toolkit/terminal/gwt/client/ui/IOrderedLayout.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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()) { -- 2.39.5