From 4e35d933939cd4a0527ff178c90ac5bb80714d09 Mon Sep 17 00:00:00 2001 From: Matti Tahvonen Date: Wed, 2 Sep 2009 12:41:14 +0000 Subject: [PATCH] fixes #3264, enabled automatic scrollbars in Vaadin svn changeset:8637/svn branch:6.1 --- .../terminal/gwt/client/ui/VGridLayout.java | 17 ----------------- .../vaadin/terminal/gwt/client/ui/VPanel.java | 3 +++ .../terminal/gwt/client/ui/VSplitPanel.java | 5 +++++ .../terminal/gwt/client/ui/VTabsheet.java | 5 ++++- .../vaadin/terminal/gwt/client/ui/VView.java | 9 ++++++--- .../vaadin/terminal/gwt/client/ui/VWindow.java | 2 ++ 6 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/com/vaadin/terminal/gwt/client/ui/VGridLayout.java b/src/com/vaadin/terminal/gwt/client/ui/VGridLayout.java index 2e4ba2586b..f52b6fc7e2 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VGridLayout.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VGridLayout.java @@ -87,14 +87,6 @@ public class VGridLayout extends SimplePanel implements Paintable, Container { return; } - boolean mightToggleVScrollBar = "".equals(height) && !"".equals(width); - boolean mightToggleHScrollBar = "".equals(width) && !"".equals(height); - int wBeforeRender = 0; - int hBeforeRender = 0; - if (mightToggleHScrollBar || mightToggleVScrollBar) { - wBeforeRender = canvas.getOffsetWidth(); - hBeforeRender = getOffsetHeight(); - } canvas.setWidth("0px"); handleMargins(uidl); @@ -201,15 +193,6 @@ public class VGridLayout extends SimplePanel implements Paintable, Container { boolean needsRelativeSizeCheck = false; - if (mightToggleHScrollBar && wBeforeRender != canvas.getOffsetWidth()) { - needsRelativeSizeCheck = true; - } - if (mightToggleVScrollBar && hBeforeRender != getOffsetHeight()) { - needsRelativeSizeCheck = true; - } - if (needsRelativeSizeCheck) { - client.handleComponentRelativeSize(this); - } } private static int[] cloneArray(int[] toBeCloned) { diff --git a/src/com/vaadin/terminal/gwt/client/ui/VPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VPanel.java index d1790bf710..ec4acf2e4d 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VPanel.java @@ -492,6 +492,9 @@ public class VPanel extends SimplePanel implements Container { } public boolean requestLayout(Set child) { + // content size change might cause change to its available space + // (scrollbars) + client.handleComponentRelativeSize((Widget) layout); if (height != null && height != "" && width != null && width != "") { /* * If the height and width has been specified the child components diff --git a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java index 59015a9606..688283e61d 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java @@ -522,6 +522,11 @@ public class VSplitPanel extends ComplexPanel implements Container, } public boolean requestLayout(Set child) { + // content size change might cause change to its available space + // (scrollbars) + for (Paintable paintable : child) { + client.handleComponentRelativeSize((Widget) paintable); + } if (height != null && width != null) { /* * If the height and width has been specified the child components diff --git a/src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java b/src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java index 879d8c403a..3949b0d32e 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VTabsheet.java @@ -822,7 +822,10 @@ public class VTabsheet extends VTabsheetBase { * If the height and width has been specified for this container the * child components cannot make the size of the layout change */ - + // layout size change may affect its available space (scrollbars) + for (Paintable paintable : child) { + client.handleComponentRelativeSize((Widget) paintable); + } return true; } diff --git a/src/com/vaadin/terminal/gwt/client/ui/VView.java b/src/com/vaadin/terminal/gwt/client/ui/VView.java index 3ea6531b43..95e85aaa1f 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VView.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VView.java @@ -36,8 +36,8 @@ import com.vaadin.terminal.gwt.client.Util; /** * */ -public class VView extends SimplePanel implements Container, - ResizeHandler, Window.ClosingHandler { +public class VView extends SimplePanel implements Container, ResizeHandler, + Window.ClosingHandler { private static final String CLASSNAME = "v-view"; @@ -561,6 +561,9 @@ public class VView extends SimplePanel implements Container, */ updateParentFrameSize(); + // layout size change may affect its available space (scrollbars) + connection.handleComponentRelativeSize((Widget) layout); + return true; } @@ -599,7 +602,7 @@ public class VView extends SimplePanel implements Container, /** * Return an iterator for current subwindows. This method is meant for * testing purposes only. - * + * * @return */ public ArrayList getSubWindowList() { diff --git a/src/com/vaadin/terminal/gwt/client/ui/VWindow.java b/src/com/vaadin/terminal/gwt/client/ui/VWindow.java index 900d49e214..5cb93795b3 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VWindow.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VWindow.java @@ -966,6 +966,8 @@ public class VWindow extends VOverlay implements Container, ScrollListener { center(); } updateShadowSizeAndPosition(); + // layout size change may affect its available space (scrollbars) + client.handleComponentRelativeSize((Widget) layout); return true; } -- 2.39.5