The main window is set with a panel object containing an horizontal layout, containing other layouts. I have managed to set a proper ResizeListener which works fine (i.e., it catches events properly and repaints everything).
Unfortunately, Firefox and Vaadin tend to add scrollbars following some kind of mysterious and magical rule. I have setSizeUndefined() on my panel, which has improved the situation (i.e., reduced the display of unnecessary scrollbars), but some scrollbars remain.
My questions are:
i) Do components with setSizeUndefined() ever display scrollbars?
ii) What triggers the display of a scrollbar in Vaadin (under which condition)?
There should be no need to use ResizeListener to make layouts and components resize if the window resizes. Use 100% width/height if you want the components to be resized with the parent. Use undefined width/height if you want the parent to be resized according to its contents.
Scrollbars are added to Panels/Windows, not to layouts and are shown if the content of the Panel/Window is larger than the Panel/Window itself.