Fix for incorrect submenu overlapping in Showcase. Now that submenus are contained by PopupPanels which in turn are based on DecoratorPanels, the offsetWidth of a menu is not the same as the offsetWidth of its containing popup.
To fully complete this fix, we need to change DecoratorPanel so that dropshadows appear on the left-hand side in RTL mode.
Patch by: adil.allawi
Review by: rdayal
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2403 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/ui/MenuBar.java b/user/src/com/google/gwt/user/client/ui/MenuBar.java
index 2a4c05c..b82d929 100644
--- a/user/src/com/google/gwt/user/client/ui/MenuBar.java
+++ b/user/src/com/google/gwt/user/client/ui/MenuBar.java
@@ -572,13 +572,12 @@
// depending on the bidi direction position a menu on the left or right
// of its base item
- if (LocaleInfo.getCurrentLocale().isRTL()) {
- int popableWidth = item.getSubMenu().getOffsetWidth();
+ if (LocaleInfo.getCurrentLocale().isRTL()) {
if (vertical) {
- popup.setPopupPosition(MenuBar.this.getAbsoluteLeft() - popableWidth + 1,
+ popup.setPopupPosition(MenuBar.this.getAbsoluteLeft() - offsetWidth + 1,
item.getAbsoluteTop());
} else {
- popup.setPopupPosition(item.getAbsoluteLeft() + item.getOffsetWidth() - popableWidth,
+ popup.setPopupPosition(item.getAbsoluteLeft() + item.getOffsetWidth() - offsetWidth,
MenuBar.this.getAbsoluteTop() + MenuBar.this.getOffsetHeight() - 1);
}
} else {