Author: jlaba...@google.com Date: Thu Jan 15 13:36:49 2009 New Revision: 4478
Modified: releases/1.6/user/src/com/google/gwt/user/client/ui/MenuBar.java Log: Fixed a bug where MenuItems in sub-sub menus cannot be clicked. Patch by: jlabanca Review by: ecc (desk) Modified: releases/1.6/user/src/com/google/gwt/user/client/ui/MenuBar.java ============================================================================== --- releases/1.6/user/src/com/google/gwt/user/client/ui/MenuBar.java (original) +++ releases/1.6/user/src/com/google/gwt/user/client/ui/MenuBar.java Thu Jan 15 13:36:49 2009 @@ -42,33 +42,59 @@ * <img class='gallery' src='MenuBar.png'/> * </p> * - * <h3>CSS Style Rules</h3> <ul class='css'> - * <li>.gwt-MenuBar { the menu bar itself }</li> - * <li>.gwt-MenuBar-horizontal { dependent style applied to horizontal menu bars }</li> - * <li>.gwt-MenuBar-vertical { dependent style applied to vertical menu bars }</li> - * <li>.gwt-MenuBar .gwt-MenuItem { menu items }</li> - * <li>.gwt-MenuBar .gwt-MenuItem-selected { selected menu items }</li> - * <li>.gwt-MenuBar .gwt-MenuItemSeparator { section breaks between menu items } </li> - * <li>.gwt-MenuBar .gwt-MenuItemSeparator .menuSeparatorInner { inner component of section separators }</li> - * <li>.gwt-MenuBarPopup .menuPopupTopLeft { the top left cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupTopLeftInner { the inner element of the cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupTopCenter { the top center cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupTopCenterInner { the inner element of the cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupTopRight { the top right cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupTopRightInner { the inner element of the cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupMiddleLeft { the middle left cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupMiddleLeftInner { the inner element of the cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupMiddleCenter { the middle center cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupMiddleCenterInner { the inner element of the cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupMiddleRight { the middle right cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupMiddleRightInner { the inner element of the cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupBottomLeft { the bottom left cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupBottomLeftInner { the inner element of the cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupBottomCenter { the bottom center cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupBottomCenterInner { the inner element of the cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupBottomRight { the bottom right cell }</li> - * <li>.gwt-MenuBarPopup .menuPopupBottomRightInner { the inner element of the cell }</li> - * </ul> + * <h3>CSS Style Rules</h3> + * <dl> + * <dd>.gwt-MenuBar</dd> + * <dt>the menu bar itself</dt> + * <dd>.gwt-MenuBar-horizontal</dd> + * <dt>dependent style applied to horizontal menu bars</dt> + * <dd>.gwt-MenuBar-vertical</dd> + * <dt>dependent style applied to vertical menu bars</dt> + * <dd>.gwt-MenuBar .gwt-MenuItem</dd> + * <dt>menu items</dt> + * <dd>.gwt-MenuBar .gwt-MenuItem-selected</dd> + * <dt>selected menu items</dt> + * <dd>.gwt-MenuBar .gwt-MenuItemSeparator</dd> + * <dt>section breaks between menu items</dt> + * <dd>.gwt-MenuBar .gwt-MenuItemSeparator .menuSeparatorInner</dd> + * <dt>inner component of section separators</dt> + * <dd>.gwt-MenuBarPopup .menuPopupTopLeft</dd> + * <dt>the top left cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupTopLeftInner</dd> + * <dt>the inner element of the cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupTopCenter</dd> + * <dt>the top center cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupTopCenterInner</dd> + * <dt>the inner element of the cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupTopRight</dd> + * <dt>the top right cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupTopRightInner</dd> + * <dt>the inner element of the cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupMiddleLeft</dd> + * <dt>the middle left cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupMiddleLeftInner</dd> + * <dt>the inner element of the cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupMiddleCenter</dd> + * <dt>the middle center cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupMiddleCenterInner</dd> + * <dt>the inner element of the cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupMiddleRight</dd> + * <dt>the middle right cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupMiddleRightInner</dd> + * <dt>the inner element of the cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupBottomLeft</dd> + * <dt>the bottom left cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupBottomLeftInner</dd> + * <dt>the inner element of the cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupBottomCenter</dd> + * <dt>the bottom center cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupBottomCenterInner</dd> + * <dt>the inner element of the cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupBottomRight</dd> + * <dt>the bottom right cell</dt> + * <dd>.gwt-MenuBarPopup .menuPopupBottomRightInner</dd> + * <dt>the inner element of the cell</dt> + * </dl> * * <p> * <h3>Example</h3> @@ -429,7 +455,7 @@ case Event.ONKEYDOWN: { int keyCode = DOM.eventGetKeyCode(event); switch (keyCode) { - case KeyCodes.KEY_LEFT: + case KeyCodes.KEY_LEFT: if (LocaleInfo.getCurrentLocale().isRTL()) { moveToNextItem(); } else { @@ -489,6 +515,9 @@ CloseEvent.fire(MenuBar.this, sender); shownChildMenu = null; popup = null; + if (parentMenu != null && parentMenu.popup != null) { + parentMenu.popup.setPreviewingAllNativeEvents(true); + } } /** @@ -953,6 +982,11 @@ @SuppressWarnings("deprecation") private void openPopup(final MenuItem item) { + // Only the last popup to be opened should preview all event + if (parentMenu != null && parentMenu.popup != null) { + parentMenu.popup.setPreviewingAllNativeEvents(false); + } + // Create a new popup for this item, and position it next to // the item (below if this is a horizontal menu bar, to the // right if it's a vertical bar). --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---