7159381: [macosx] Dock Icon defaults to Generic Java Application Category
authorleonidr
Mon, 13 Aug 2012 17:53:56 +0400
changeset 13539 2a658e96e769
parent 13418 5d3f9ceedec9
child 13540 7db2a9741c48
7159381: [macosx] Dock Icon defaults to Generic Java Application Category Reviewed-by: anthony
jdk/src/macosx/native/sun/osxapp/NSApplicationAWT.h
jdk/src/macosx/native/sun/osxapp/NSApplicationAWT.m
--- 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.