Reviewers: Ray Ryan,
Please review this at http://gwt-code-reviews.appspot.com/115804 Affected files: M user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java Index: user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java diff --git a/user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java b/user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java index d11634ed1f07dcfa6db43fe0c2b0aa192a01cf1a..77128a066ce81f4b87e6b05a665dd0ecb9300e9d 100644 --- a/user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java +++ b/user/src/com/google/gwt/user/client/ui/StackLayoutPanel.java @@ -15,8 +15,6 @@ */ package com.google.gwt.user.client.ui; -import com.google.gwt.core.client.Scheduler; -import com.google.gwt.core.client.Scheduler.ScheduledCommand; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.Event; @@ -100,7 +98,7 @@ public class StackLayoutPanel extends Composite implements HasWidgets, * @param header the header widget * @param headerSize the size of the header widget */ - public void add(Widget widget, Widget header, double headerSize) { + public void add(final Widget widget, Widget header, double headerSize) { ClickWrapper wrapper = new ClickWrapper(widget, header); layoutPanel.add(wrapper); layoutPanel.add(widget); @@ -112,8 +110,9 @@ public class StackLayoutPanel extends Composite implements HasWidgets, layoutData.add(data); if (visibleWidget == null) { - // Don't animate the initial widget display. - showWidget(widget, 0); + // If there's no visible widget, display the first one. The layout will + // be updated onLoad(). + visibleWidget = widget; } } @@ -149,6 +148,12 @@ public class StackLayoutPanel extends Composite implements HasWidgets, }; } + @Override + protected void onLoad() { + // When the widget becomes attached, update its layout. + animate(0); + } + public void onResize() { layoutPanel.onResize(); } @@ -209,10 +214,6 @@ public class StackLayoutPanel extends Composite implements HasWidgets, private void showWidget(Widget widget, final int duration) { visibleWidget = widget; - Scheduler.get().scheduleFinally(new ScheduledCommand() { - public void execute() { - animate(duration); - } - }); + animate(duration); } } -- http://groups.google.com/group/Google-Web-Toolkit-Contributors
