[Bf-blender-cvs] [91966ee] blender-v2.78-release: fix Mac build with Xcode 8

Mike Erwin noreply at git.blender.org
Thu Sep 22 11:15:11 CEST 2016


Commit: 91966eeefa58cbc158cacc70d31db958cdc4d694
Author: Mike Erwin
Date:   Wed Sep 14 16:23:48 2016 +0200
Branches: blender-v2.78-release
https://developer.blender.org/rB91966eeefa58cbc158cacc70d31db958cdc4d694

fix Mac build with Xcode 8

Small issues in GHOST
- use NSApplicationDelegate protocol for our app delegate
- make sure NSApp is initialized before using
(cherry picked from commit df7be04ca6d4b6dccc998445386228699d72d072)

===================================================================

M	intern/ghost/intern/GHOST_SystemCocoa.mm

===================================================================

diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm
index 4b8cb53..b0d5ab3 100644
--- a/intern/ghost/intern/GHOST_SystemCocoa.mm
+++ b/intern/ghost/intern/GHOST_SystemCocoa.mm
@@ -285,7 +285,7 @@ extern "C" int GHOST_HACK_getFirstFile(char buf[FIRSTFILEBUFLG])
  * CocoaAppDelegate
  * ObjC object to capture applicationShouldTerminate, and send quit event
  **/
- at interface CocoaAppDelegate : NSObject <NSFileManagerDelegate> {
+ at interface CocoaAppDelegate : NSObject <NSApplicationDelegate> {
 	GHOST_SystemCocoa *systemCocoa;
 }
 - (void)setSystemCocoa:(GHOST_SystemCocoa *)sysCocoa;
@@ -412,65 +412,64 @@ GHOST_TSuccess GHOST_SystemCocoa::init()
 		}*/
 		
 		NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-		if (NSApp == nil) {
-			[NSApplication sharedApplication];
+		[NSApplication sharedApplication]; // initializes	NSApp
+		
+		if ([NSApp mainMenu] == nil) {
+			NSMenu *mainMenubar = [[NSMenu alloc] init];
+			NSMenuItem *menuItem;
+			NSMenu *windowMenu;
+			NSMenu *appMenu;
 			
-			if ([NSApp mainMenu] == nil) {
-				NSMenu *mainMenubar = [[NSMenu alloc] init];
-				NSMenuItem *menuItem;
-				NSMenu *windowMenu;
-				NSMenu *appMenu;
-				
-				//Create the application menu
-				appMenu = [[NSMenu alloc] initWithTitle:@"Blender"];
-				
-				[appMenu addItemWithTitle:@"About Blender" action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
-				[appMenu addItem:[NSMenuItem separatorItem]];
-				
-				menuItem = [appMenu addItemWithTitle:@"Hide Blender" action:@selector(hide:) keyEquivalent:@"h"];
-				[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
-				 
-				menuItem = [appMenu addItemWithTitle:@"Hide others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
-				[menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask | NSCommandKeyMask)];
-				
-				[appMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
-				
-				menuItem = [appMenu addItemWithTitle:@"Quit Blender" action:@selector(terminate:) keyEquivalent:@"q"];
-				[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
-				
-				menuItem = [[NSMenuItem alloc] init];
-				[menuItem setSubmenu:appMenu];
-				
-				[mainMenubar addItem:menuItem];
-				[menuItem release];
-				[NSApp performSelector:@selector(setAppleMenu:) withObject:appMenu]; //Needed for 10.5
-				[appMenu release];
-				
-				//Create the window menu
-				windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
-				
-				menuItem = [windowMenu addItemWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"];
-				[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
-				
-				[windowMenu addItemWithTitle:@"Zoom" action:@selector(performZoom:) keyEquivalent:@""];
-				
-				menuItem = [windowMenu addItemWithTitle:@"Enter Full Screen" action:@selector(toggleFullScreen:) keyEquivalent:@"f" ];
-				[menuItem setKeyEquivalentModifierMask:NSControlKeyMask | NSCommandKeyMask];
+			//Create the application menu
+			appMenu = [[NSMenu alloc] initWithTitle:@"Blender"];
+			
+			[appMenu addItemWithTitle:@"About Blender" action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
+			[appMenu addItem:[NSMenuItem separatorItem]];
+			
+			menuItem = [appMenu addItemWithTitle:@"Hide Blender" action:@selector(hide:) keyEquivalent:@"h"];
+			[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
+			 
+			menuItem = [appMenu addItemWithTitle:@"Hide others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
+			[menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask | NSCommandKeyMask)];
+			
+			[appMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""];
+			
+			menuItem = [appMenu addItemWithTitle:@"Quit Blender" action:@selector(terminate:) keyEquivalent:@"q"];
+			[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
+			
+			menuItem = [[NSMenuItem alloc] init];
+			[menuItem setSubmenu:appMenu];
+			
+			[mainMenubar addItem:menuItem];
+			[menuItem release];
+			[NSApp performSelector:@selector(setAppleMenu:) withObject:appMenu]; //Needed for 10.5
+			[appMenu release];
+			
+			//Create the window menu
+			windowMenu = [[NSMenu alloc] initWithTitle:@"Window"];
+			
+			menuItem = [windowMenu addItemWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"];
+			[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
+			
+			[windowMenu addItemWithTitle:@"Zoom" action:@selector(performZoom:) keyEquivalent:@""];
+			
+			menuItem = [windowMenu addItemWithTitle:@"Enter Full Screen" action:@selector(toggleFullScreen:) keyEquivalent:@"f" ];
+			[menuItem setKeyEquivalentModifierMask:NSControlKeyMask | NSCommandKeyMask];
 
-				menuItem = [windowMenu addItemWithTitle:@"Close" action:@selector(performClose:) keyEquivalent:@"w"];
-				[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
-				
-				menuItem = [[NSMenuItem	alloc] init];
-				[menuItem setSubmenu:windowMenu];
-				
-				[mainMenubar addItem:menuItem];
-				[menuItem release];
-				
-				[NSApp setMainMenu:mainMenubar];
-				[NSApp setWindowsMenu:windowMenu];
-				[windowMenu release];
-			}
+			menuItem = [windowMenu addItemWithTitle:@"Close" action:@selector(performClose:) keyEquivalent:@"w"];
+			[menuItem setKeyEquivalentModifierMask:NSCommandKeyMask];
+			
+			menuItem = [[NSMenuItem	alloc] init];
+			[menuItem setSubmenu:windowMenu];
+			
+			[mainMenubar addItem:menuItem];
+			[menuItem release];
+			
+			[NSApp setMainMenu:mainMenubar];
+			[NSApp setWindowsMenu:windowMenu];
+			[windowMenu release];
 		}
+
 		if ([NSApp delegate] == nil) {
 			CocoaAppDelegate *appDelegate = [[CocoaAppDelegate alloc] init];
 			[appDelegate setSystemCocoa:this];




More information about the Bf-blender-cvs mailing list