Hi. Here is a test case that, with your patch applied, works differently than JDK 6: 1. Show JFrame with a menu 2. Create a modal dialog with the frame as a parent 3. Dispose the frame 4. Make dialog visible
With JDK 6, the dialog's menu will be disabled. With JDK 8, it will be enabled. So, formally, we've got a regression. I'm not sure whether it is worth fixing, because it looks like a corner case, but still. On Jul 19, 2013, at 10:15 PM, Sergey Bylokhov <sergey.bylok...@oracle.com> wrote: > Hello, > Please review the fix for jdk 8 and 7u40. > The fix for JDK-8010906 don't take into account situation then first parent > has no menu bar, but the second has. > So it introduce the next scenario: > #1. Open the window with File menu. > #2. Open modal dialog1 =>File menu is disabled > #3. Open modal dialog2 =>File menu disappears > #4. Close dialog two > #5. Close dialog one. File menu reappears, but File still disabled > > The steps #3. occurred, because CMenuBar.activate resets the current menubar > if a passed javaMenuBar is null. > The steps #5. occurred, because at step #3 we do not remove our nsmenu from > the deleted NSMenuItem, when the appropriate NSMenuItem removed from > mainMenu. So at step #5 we got a situation, when our nsmenu was added to the > two different nsmenuitems: old(disabled) and new(enabled). > > Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8017189 > Webrev can be found at: http://cr.openjdk.java.net/~serb/8017189/webrev.00 > > -- > Best regards, Sergey. >