diff options
Diffstat (limited to 'src/com/vaadin/terminal/gwt')
-rw-r--r-- | src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java index 00d76e3a45..e8c9b87ce0 100644 --- a/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java +++ b/src/com/vaadin/terminal/gwt/client/ui/VSplitPanel.java @@ -385,23 +385,22 @@ public class VSplitPanel extends ComplexPanel implements Container, * @return */ private float convertToPercentage(String pos) { - float posAsFloat = 0; - - if (pos.indexOf("px") > 0) { - int posAsInt = Integer.parseInt(pos.substring(0, pos.length() - 2)); + if (pos.endsWith("px")) { + float pixelPosition = Float.parseFloat(pos.substring(0, + pos.length() - 2)); int offsetLength = orientation == ORIENTATION_HORIZONTAL ? getOffsetWidth() : getOffsetHeight(); - // 100% needs special handling - if (posAsInt + getSplitterSize() >= offsetLength) { - posAsInt = offsetLength; + // Take splitter size into account at the edge + if (pixelPosition + getSplitterSize() >= offsetLength) { + return 100; } - posAsFloat = ((float) posAsInt / (float) offsetLength * 100); + return pixelPosition / offsetLength * 100; } else { - posAsFloat = Float.parseFloat(pos.substring(0, pos.length() - 1)); + assert pos.endsWith("%"); + return Float.parseFloat(pos.substring(0, pos.length() - 1)); } - return posAsFloat; } private String checkSplitPositionLimits(String pos) { |