Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Firefox does not retain browser's scroll position when switching tab in TabSheet #12551

Open
mikke-alekstra opened this issue Aug 23, 2022 · 1 comment
Labels

Comments

@mikke-alekstra
Copy link

Hello!

There seems to be a problem with Firefox retaining browser's scroll position when switching tab in TabSheet component.

Vaadin Framework version 8.16.1 (the problem was originally found with 8.14.3)
Debian 10 (buster) Linux: latest versions of Firefox (and Chromium)
Windows 10: latest versions of Firefox (and Chrome)

In my test I had a VerticalLayout where I first had 25 filler (Label) rows to get a vertical scroll bar to appear in browser and then a TabSheet containing two tabs with 10 tab (Label) rows in each of them.

Test steps:

  1. Scroll to bottom of page to see the TabSheet
  2. Click tab 2 to switch tab

Expected behavior (Chrome and Chromium): scroll position is retained, full tab 2 content is visible
Actual behavior (Firefox): scroll position is not retained. Scroll bar jumps upwards and only first line of tab 2 content is seen.

Please see below the simple test code the case can be re-produced with.

    @Override
    protected void init(VaadinRequest vaadinRequest) {
        
        VerticalLayout layout = new VerticalLayout();
        
        for (int i = 1; i <= 25; i ++) {
            layout.addComponent(new Label("filler row " + i));
        }
        
        TabSheet tabSheet = new TabSheet();
        
        for (int i = 1; i <= 2; i ++) {
        
            VerticalLayout tabLayout = new VerticalLayout();
            
            for (int j = 1; j <= 10; j ++) {
                tabLayout.addComponent(new Label("tab row " + j));
            }
            
            tabSheet.addTab(tabLayout, "tab " + i);
            
        }
        
        layout.addComponent(tabSheet);
        
        setContent(layout);
        
    }

@Ansku Ansku added the bug label Nov 23, 2022
@Ansku
Copy link
Member

Ansku commented Dec 15, 2022

This is a timing issue, and unfortunately all the solutions I've tried have either made the problem worse (anything that relies on measuring things) or broken something else on the side in a way that is more disruptive than this issue (anything that relies on adding delays). Currently I'm out of ideas, but I'll get back to this if I think of something else to try.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants