From 2a7fb2236cafe1ae0d1cb2fbd468c85b8a440e28 Mon Sep 17 00:00:00 2001 From: Matti Hosio Date: Wed, 14 Jan 2015 12:13:31 +0200 Subject: Remove unnecessary scrollbar when zooming in or out (#15164) Adds overflow-hidden in cases where scrollbars should not be needed Change-Id: Icee2444b0e7ee999fe49fadcb1598027453d49c5 --- client/src/com/vaadin/client/ui/VScrollTable.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'client') diff --git a/client/src/com/vaadin/client/ui/VScrollTable.java b/client/src/com/vaadin/client/ui/VScrollTable.java index 895ea9aa8f..48036a6399 100644 --- a/client/src/com/vaadin/client/ui/VScrollTable.java +++ b/client/src/com/vaadin/client/ui/VScrollTable.java @@ -6890,7 +6890,16 @@ public class VScrollTable extends FlowPanel implements HasWidgets, * visibleCellCount; if (willHaveScrollbars()) { totalExtraWidth += Util.getNativeScrollbarSize(); + // if there will be vertical scrollbar, let's enable it + scrollBodyPanel.getElement().getStyle().clearOverflowY(); + } else { + // if there is no need for vertical scrollbar, let's disable it + // this is necessary since sometimes the browsers insist showing + // the scrollbar even if the content would fit perfectly + scrollBodyPanel.getElement().getStyle() + .setOverflowY(Overflow.HIDDEN); } + availW -= totalExtraWidth; int forceScrollBodyWidth = -1; @@ -6908,6 +6917,15 @@ public class VScrollTable extends FlowPanel implements HasWidgets, forceScrollBodyWidth = usedMinimumWidth + totalExtraWidth; } extraSpace = 0; + // if there will be horizontal scrollbar, let's enable it + scrollBodyPanel.getElement().getStyle().clearOverflowX(); + } else { + // if there is no need for horizontal scrollbar, let's disable + // it + // this is necessary since sometimes the browsers insist showing + // the scrollbar even if the content would fit perfectly + scrollBodyPanel.getElement().getStyle() + .setOverflowX(Overflow.HIDDEN); } if (forceScrollBodyWidth > 0) { -- cgit v1.2.3