From: Stefan Csomor Date: Mon, 18 Jan 2010 10:56:17 +0000 (+0000) Subject: switching to LaunchServices implementation, fixes #11508 X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/2ea60735163ce5ae73b8f089b0a982e65853c9f8?ds=inline switching to LaunchServices implementation, fixes #11508 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63181 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/osx/utils_osx.cpp b/src/osx/utils_osx.cpp index 20d791b1a7..bd165782c5 100644 --- a/src/osx/utils_osx.cpp +++ b/src/osx/utils_osx.cpp @@ -93,12 +93,20 @@ bool wxLaunchDefaultApplication(const wxString& document, int flags) { wxUnusedVar(flags); - static const char * const OPEN_CMD = "/usr/bin/open"; - if ( wxFileExists(OPEN_CMD) && - wxExecute(wxString(OPEN_CMD) + " " + document) ) + wxCFRef cfMutableString(CFStringCreateMutableCopy(NULL, 0, wxCFStringRef(document))); + CFStringNormalize(cfMutableString,kCFStringNormalizationFormD); + wxCFRef curl(CFURLCreateWithFileSystemPath(kCFAllocatorDefault, cfMutableString , kCFURLPOSIXPathStyle, false)); + OSStatus err = LSOpenCFURLRef( curl , NULL ); + + if (err == noErr) + { return true; - - return false; + } + else + { + wxLogDebug(wxT("Default Application Launch error %d"), (int) err); + return false; + } } // ----------------------------------------------------------------------------