/* @VaadinApache2LicenseForJavaFiles@ */ package com.vaadin.tests.overlays; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractReindeerTestUI; import com.vaadin.ui.Button; import com.vaadin.ui.Button.ClickEvent; import com.vaadin.ui.Component; import com.vaadin.ui.CssLayout; import com.vaadin.ui.Label; import com.vaadin.ui.Notification; public class OverlayTouchScrolling extends AbstractReindeerTestUI { @Override protected void setup(VaadinRequest request) { final CssLayout green = new CssLayout(); green.setSizeFull(); final CssLayout layout = new CssLayout() { @Override protected String getCss(Component c) { return "background:green;"; } }; layout.setSizeFull(); layout.addComponent(green); setContent(layout); Button button = new Button("Tap me with a touch device"); button.addClickListener(new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { Notification.show( "Now close this and you can scroll in mad places."); green.addComponent(new Label( "Thank you for clicking, now scroll (with touch device) to area without green background, which shouldn't be possible.")); } }); green.addComponent(button); } @Override protected String getTestDescription() { return "Using overlays breaks top level scrolling on touch devices"; } @Override protected Integer getTicketNumber() { return 10860; } }