Fixed: Open web pages in background under OS X and don't close client
This commit is contained in:
parent
36ce66aac5
commit
f895b6a713
1 changed files with 22 additions and 1 deletions
|
@ -23,6 +23,8 @@
|
|||
# include <ShellAPI.h>
|
||||
# include <io.h>
|
||||
# include <tchar.h>
|
||||
#elif defined NL_OS_MAC
|
||||
# include <ApplicationServices/ApplicationServices.h>
|
||||
#elif defined NL_OS_UNIX
|
||||
# include <unistd.h>
|
||||
# include <cerrno>
|
||||
|
@ -1091,7 +1093,26 @@ static bool openDocWithExtension (const char *document, const char *ext)
|
|||
return true;
|
||||
}
|
||||
#elif defined(NL_OS_MAC)
|
||||
return launchProgram("open", document);
|
||||
CFURLRef url = CFURLCreateWithBytes(NULL, (const UInt8 *)document, strlen(document), kCFStringEncodingUTF8, NULL);
|
||||
|
||||
if (url)
|
||||
{
|
||||
OSStatus res = LSOpenCFURLRef(url, 0);
|
||||
CFRelease(url);
|
||||
|
||||
if (res != 0)
|
||||
{
|
||||
nlwarning("LSOpenCFURLRef %s returned %d", document, (sint)res);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
nlwarning("Unable to create URL from %s", document);
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
std::string command = "/usr/bin/xdg-open";
|
||||
|
||||
|
|
Loading…
Reference in a new issue