r40396: Committed fix to 3.3 EE branch. Added position:absolute; to menuBar root node's CSS classes (horizontal and vertical) in all themes.
I found out that on the showcase app, the menu bar submenu's displayed correctly, and the difference was simply that, in the showcase, the menu had at least one absolute-positioned ancestor node. So, the issue could be fixed at the app code level by simply adding an absolute-positioned ancestor, including the root container of the component. So, I tried a less-intrusive approach consisting of temporarily setting position:absolute; to the root container when calculating the position of the submenus and then setting it back to whatever it was. However, the submenus were misplaced again when the root container was reset to relative position, so it meant that the positions set on the submenus were in relation to the nearest absolute-positioned node, which meant that there had to be a permanent absolute-positioned ancestor for the menu bar. So, I tried adding an inner div, just under the root container to simply contain position:absolute;. However, with this, the submenus didn't appear at all, due to several expectations throughout the menuBar code. So, the only solution was to make the root container of the menu bar absolute positioned. So, I added position:absolute; to the root container's CSS classes for horizontal and vertical nodes in all themes. This solves the problem and can be easily overridden by the app code, if necessary.
Testing notes:
Verify that the test case works when using any of the compat themes; verify that the showcase demos continue to work correctly, and run all regression tests for this component.
Attached test case and screen shot of the issue. Note, the icefaces.jar, icefaces-ace.jar and icefaces-compat.jar files need to be added to the war file to run.