diff --git a/resources/install/macosx/JavaApplicationStub b/resources/install/macosx/JavaApplicationStub index dd4686faf..25a52e64c 100755 Binary files a/resources/install/macosx/JavaApplicationStub and b/resources/install/macosx/JavaApplicationStub differ diff --git a/src/native/macosx/launcher/launcher.m b/src/native/macosx/launcher/launcher.m index baf756c31..7c5b072b2 100644 --- a/src/native/macosx/launcher/launcher.m +++ b/src/native/macosx/launcher/launcher.m @@ -188,6 +188,15 @@ JLI_Launch_t getLauncher(NSDictionary *javaDictionary) void launchJitsi(int argMainCount, char *argMainValues[]) { + // special psn args that we will skip, + // those args are added when application is started from finder + int psnArgsCount = 0; + for(int i = 0; i < argMainCount; i++) + { + if(memcmp(argMainValues[i], "-psn_", 4) == 0) + psnArgsCount++; + } + NSBundle *mainBundle = [NSBundle mainBundle]; NSDictionary *infoDictionary = [mainBundle infoDictionary]; @@ -269,11 +278,11 @@ void launchJitsi(int argMainCount, char *argMainValues[]) appArgc = jargc; // Initialize the arguments to JLI_Launch() - int argc = 2 + [sprops count] + 1 + appArgc; + int argc = 2 + [sprops count] + 1 + appArgc - psnArgsCount; if(options != NULL) argc++; - char *argv[argc + appArgc]; + char *argv[argc]; int i = 0; argv[i++] = argMainValues[0]; @@ -308,10 +317,16 @@ void launchJitsi(int argMainCount, char *argMainValues[]) // the params are last in the array of arguments for(int j = appArgc; j > 0; j--) { - argv[i++] = strdup(argMainValues[argMainCount-j]); + // skip -psn args + if (memcmp(argMainValues[argMainCount-j], "-psn_", 4) != 0) + argv[i++] = strdup(argMainValues[argMainCount-j]); } argsSupplied++; + // once psn args are filtered, no more count them as they will not be + // supplied to the launch function + jargc = jargc - psnArgsCount; + // Invoke JLI_Launch() jli_LaunchFxnPtr(argc, argv, 0, NULL,