diff options
4 files changed, 94 insertions, 6 deletions
diff --git a/WebContent/VAADIN/themes/base/grid/grid.scss b/WebContent/VAADIN/themes/base/grid/grid.scss index e4a4a1d920..8a1497dda8 100644 --- a/WebContent/VAADIN/themes/base/grid/grid.scss +++ b/WebContent/VAADIN/themes/base/grid/grid.scss @@ -228,6 +228,8 @@ $v-grid-editor-background-color: $v-grid-row-background-color !default; left: 0; right: 0; border: $v-grid-border; + box-sizing: border-box; + -moz-box-sizing: border-box; margin-top: nth($v-grid-border, 1) * -1; @include box-shadow(0 0 9px rgba(0,0,0,.2)); } diff --git a/client/src/com/vaadin/client/widgets/Grid.java b/client/src/com/vaadin/client/widgets/Grid.java index 3aaac14f10..5eabbec621 100644 --- a/client/src/com/vaadin/client/widgets/Grid.java +++ b/client/src/com/vaadin/client/widgets/Grid.java @@ -1473,10 +1473,8 @@ public class Grid<T> extends ResizeComposite implements } // Do not render over the vertical scrollbar - int nativeScrollbarSize = WidgetUtil.getNativeScrollbarSize(); - if (nativeScrollbarSize > 0) { - editorOverlay.getStyle().setRight(nativeScrollbarSize, Unit.PX); - } + editorOverlay.getStyle().setWidth(grid.escalator.getInnerWidth(), + Unit.PX); } private boolean buttonsShouldBeRenderedBelow(TableRowElement tr) { @@ -2200,8 +2198,7 @@ public class Grid<T> extends ResizeComposite implements // If selection cell already contains a widget do not // create a new CheckBox HeaderCell selectionCell = header.getDefaultRow().getCell(this); - if (selectionCell.getType() - .equals(GridStaticCellType.WIDGET) + if (selectionCell.getType().equals(GridStaticCellType.WIDGET) && selectionCell.getWidget() instanceof CheckBox) { return; } diff --git a/uitest/src/com/vaadin/tests/components/grid/GridEditingWithNoScrollBars.java b/uitest/src/com/vaadin/tests/components/grid/GridEditingWithNoScrollBars.java new file mode 100644 index 0000000000..d3e0a2a7c7 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/grid/GridEditingWithNoScrollBars.java @@ -0,0 +1,53 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.grid; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.ComboBox; +import com.vaadin.ui.Grid; +import com.vaadin.ui.Grid.Column; +import com.vaadin.ui.Grid.SelectionMode; + +public class GridEditingWithNoScrollBars extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + Grid grid = new Grid(); + grid.addColumn("foo", String.class); + grid.addColumn("bar", String.class); + for (int i = 0; i < 10; ++i) { + grid.addRow("foo", "" + (i % 3 + 1)); + } + + ComboBox stCombo = new ComboBox(); + stCombo.addItem("" + 1); + stCombo.addItem("" + 2); + stCombo.addItem("" + 3); + stCombo.setNullSelectionAllowed(false); + stCombo.setSizeFull(); + + Column stCol = grid.getColumn("bar"); + stCol.setEditorField(stCombo); + + grid.setSelectionMode(SelectionMode.SINGLE); + grid.setEditorEnabled(true); + grid.setSizeFull(); + + addComponent(grid); + } + +} diff --git a/uitest/src/com/vaadin/tests/components/grid/GridEditingWithNoScrollBarsTest.java b/uitest/src/com/vaadin/tests/components/grid/GridEditingWithNoScrollBarsTest.java new file mode 100644 index 0000000000..6400b17449 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/grid/GridEditingWithNoScrollBarsTest.java @@ -0,0 +1,36 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.grid; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import com.vaadin.testbench.elements.GridElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class GridEditingWithNoScrollBarsTest extends MultiBrowserTest { + + @Test + public void testEditorWideEnough() { + openTestURL(); + + GridElement grid = $(GridElement.class).first(); + grid.getCell(1, 1).doubleClick(); + assertEquals(grid.getEditor().getSize().width, grid.getTableWrapper() + .getSize().width); + } +} |