< prev index next >

src/java.desktop/macosx/native/libawt_lwawt/awt/CMenuBar.m

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 29,38 **** --- 29,39 ---- #import "CMenuBar.h" #import "CMenu.h" #import "ThreadUtilities.h" + #import "ApplicationDelegate.h" #import "sun_lwawt_macosx_CMenuBar.h" __attribute__((visibility("default"))) NSString *CMenuBarDidReuseItemNotification =
*** 99,108 **** --- 100,113 ---- if (!menubar) { [CMenuBar clearMenuBarExcludingAppleMenu_OnAppKitThread:YES]; return; } + #ifdef DEBUG + NSLog(@"activating menu bar: %@", menubar); + #endif + @synchronized([CMenuBar class]) { sActiveMenuBar = menubar; } @synchronized(menubar) {
*** 182,198 **** --- 187,221 ---- } -(void) deactivate { AWT_ASSERT_APPKIT_THREAD; + BOOL isDeactivated = NO; @synchronized([CMenuBar class]) { + if (sActiveMenuBar == self) { sActiveMenuBar = nil; + isDeactivated = YES; + } } + if (isDeactivated) { + #ifdef DEBUG + NSLog(@"deactivating menu bar: %@", self); + #endif + @synchronized(self) { fModallyDisabled = NO; } + + // In theory, this might cause flickering if the window gaining focus + // has its own menu. However, I couldn't reproduce it on practice, so + // perhaps this is a non issue. + CMenuBar* defaultMenu = [[ApplicationDelegate sharedDelegate] defaultMenuBar]; + if (defaultMenu != nil) { + [CMenuBar activate:defaultMenu modallyDisabled:NO]; + } + } } -(void) javaAddMenu: (CMenu *)theMenu { @synchronized(self) { [fMenuList addObject: theMenu];
< prev index next >