From: Matti Tahvonen Date: Fri, 6 Feb 2009 15:41:28 +0000 (+0000) Subject: Added a minor hack to fix sampler scrollbar issues X-Git-Tag: 6.7.0.beta1~3194 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=9ffd28d733c0a9fff67f1120bd6bbd9e41971abc;p=vaadin-framework.git Added a minor hack to fix sampler scrollbar issues svn changeset:6759/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ICustomComponent.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ICustomComponent.java index 70a0a18e57..9f3b96eac2 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ICustomComponent.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ICustomComponent.java @@ -6,6 +6,8 @@ package com.itmill.toolkit.terminal.gwt.client.ui; import java.util.Set; +import com.google.gwt.user.client.Command; +import com.google.gwt.user.client.DeferredCommand; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; @@ -29,7 +31,7 @@ public class ICustomComponent extends SimplePanel implements Container { setStyleName(CLASSNAME); } - public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { + public void updateFromUIDL(UIDL uidl, final ApplicationConnection client) { rendering = true; if (client.updateComponent(this, uidl, true)) { rendering = false; @@ -50,11 +52,22 @@ public class ICustomComponent extends SimplePanel implements Container { p.updateFromUIDL(child, client); } + boolean updateDynamicSize = updateDynamicSize(); + if (updateDynamicSize && width != null && width.contains("%")) { + DeferredCommand.addCommand(new Command() { + public void execute() { + // FIXME deferred relative size update needed to fix some + // scrollbar issues in sampler. This must be the wrong way + // to do it. Might be that some other component is broken. + client.handleComponentRelativeSize(ICustomComponent.this); + + } + }); + } + renderSpace.setWidth(getElement().getOffsetWidth()); renderSpace.setHeight(getElement().getOffsetHeight()); - updateDynamicSize(); - rendering = false; }