7159381: [macosx] Dock Icon defaults to Generic Java Application Category
Reviewed-by: anthony
--- a/jdk/src/macosx/native/sun/osxapp/NSApplicationAWT.h Fri Aug 10 10:15:52 2012 -0700
+++ b/jdk/src/macosx/native/sun/osxapp/NSApplicationAWT.h Mon Aug 13 17:53:56 2012 +0400
@@ -28,7 +28,6 @@
@interface NSApplicationAWT : NSApplication {
NSString *fApplicationName;
- BOOL fUseDefaultIcon;
NSWindow *eventTransparentWindow;
}
--- a/jdk/src/macosx/native/sun/osxapp/NSApplicationAWT.m Fri Aug 10 10:15:52 2012 -0700
+++ b/jdk/src/macosx/native/sun/osxapp/NSApplicationAWT.m Mon Aug 13 17:53:56 2012 +0400
@@ -52,7 +52,6 @@
AWT_ASSERT_APPKIT_THREAD;
fApplicationName = nil;
- fUseDefaultIcon = NO;
// NSApplication will call _RegisterApplication with the application's bundle, but there may not be one.
// So, we need to call it ourselves to ensure the app is set up properly.
@@ -147,10 +146,6 @@
if (appName != NULL) {
fApplicationName = [NSString stringWithUTF8String:appName];
unsetenv(envVar);
-
- // If this environment variable was set we were launched from the command line, so we
- // should use a generic app icon if one wasn't set.
- fUseDefaultIcon = YES;
}
// If it wasn't specified as an argument, see if it was specified as a system property.
@@ -171,9 +166,6 @@
if (lastPeriod.location != NSNotFound) {
fApplicationName = [fApplicationName substringFromIndex:lastPeriod.location + 1];
}
- // If this environment variable was set we were launched from the command line, so we
- // should use a generic app icon if one wasn't set.
- fUseDefaultIcon = YES;
}
}
@@ -266,8 +258,11 @@
// If the icon file wasn't specified as an argument and we need to get an icon
// we'll use the generic java app icon.
NSString *defaultIconPath = [NSString stringWithFormat:@"%@%@", SHARED_FRAMEWORK_BUNDLE, @"/Resources/GenericApp.icns"];
- if (fUseDefaultIcon && (theIconPath == nil)) {
- theIconPath = defaultIconPath;
+ if (theIconPath == nil) {
+ NSString* bundleIcon = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIconFile"];
+ if (bundleIcon == nil) {
+ theIconPath = defaultIconPath;
+ }
}
// Set up the dock icon if we have an icon name.