LoginForm does not work

I would like to use LoginForm so the browser helps the users to autofill username and password.

If the login is successful, I call removeWindow()/addWindow() to show the new screen.
This works perfectly If I use a normal form, but with LoginForm it does not - the screen simply is not updated, except if I hit F5 manually.

I found entry
http://vaadin.com/forum/-/message_boards/message/18993
which seems to be the same problem.

As nearly a year has passed, I would like to ask whether any progress has been made on this issue. Or do you have an example which shows how LoginForm should be used so it will work as expected?

I’am using Vaadin 6.2.6.

Thanks,
Thomas

This is clearly a bug. Created a ticket and test case
http://dev.vaadin.com/ticket/4417
.

While the bug is being fixed, you can easily go around it by switching layouts instead of windows. Something like this works fine:

package com.example.logintest;

import com.vaadin.Application;
import com.vaadin.ui.Button;
import com.vaadin.ui.Label;
import com.vaadin.ui.LoginForm;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.LoginForm.LoginEvent;
import com.vaadin.ui.LoginForm.LoginListener;

@SuppressWarnings("serial")
public class LogintestApplication extends Application {

    LoginForm lf = new LoginForm();

    @Override
    public void init() {
        Window main = new Window("My App");
        setMainWindow(main);
        main.getContent().setSizeFull();
        main.addComponent(lf);
        lf.addListener(new LoginListener() {
            public void onLogin(LoginEvent event) {
                loggedIn();
            }
        });
    }

    private void loggedIn() {
        VerticalLayout appLayout = new VerticalLayout();
        getMainWindow().setContent(appLayout);
        appLayout.addComponent(new Label("My app goes here"));
        appLayout.addComponent(new Button("Logout", new Button.ClickListener() {
            public void buttonClick(ClickEvent event) {
                close();
            }
        }));
    }
}

Yes, this way it works.
Thanks,
Thomas