diff options
author | elektrahesse | 2010-09-17 20:34:46 +0200 |
---|---|---|
committer | elektrahesse | 2010-09-17 20:34:46 +0200 |
commit | fec7893de067992b496025e2eb922785a557a368 (patch) | |
tree | d37498dc5cb75373f4985148b6bc4566130060dc /linden/indra/llwindow/llwindowmacosx.cpp | |
parent | Ooops forgot to remove a debug printout :P (diff) | |
download | meta-impy-fec7893de067992b496025e2eb922785a557a368.zip meta-impy-fec7893de067992b496025e2eb922785a557a368.tar.gz meta-impy-fec7893de067992b496025e2eb922785a557a368.tar.bz2 meta-impy-fec7893de067992b496025e2eb922785a557a368.tar.xz |
Fixed events handling on osx to behave correctly on 10.5+ compilation runs.
Added ShellEx(std::string &) method to execute local applications based on file type.
Diffstat (limited to 'linden/indra/llwindow/llwindowmacosx.cpp')
-rw-r--r-- | linden/indra/llwindow/llwindowmacosx.cpp | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/linden/indra/llwindow/llwindowmacosx.cpp b/linden/indra/llwindow/llwindowmacosx.cpp index 7e7e0af..7efba51 100644 --- a/linden/indra/llwindow/llwindowmacosx.cpp +++ b/linden/indra/llwindow/llwindowmacosx.cpp | |||
@@ -1153,16 +1153,15 @@ void LLWindowMacOSX::gatherInput() | |||
1153 | } | 1153 | } |
1154 | break; | 1154 | break; |
1155 | 1155 | ||
1156 | case kHighLevelEvent: | ||
1157 | AEProcessAppleEvent (&evt); | ||
1158 | break; | ||
1159 | |||
1160 | case updateEvt: | 1156 | case updateEvt: |
1161 | // We shouldn't be getting these regularly (since our window will be buffered), but we need to handle them correctly... | 1157 | // We shouldn't be getting these regularly (since our window will be buffered), but we need to handle them correctly... |
1162 | BeginUpdate((WindowRef)evt.message); | 1158 | BeginUpdate((WindowRef)evt.message); |
1163 | EndUpdate((WindowRef)evt.message); | 1159 | EndUpdate((WindowRef)evt.message); |
1164 | break; | 1160 | break; |
1165 | 1161 | ||
1162 | default: | ||
1163 | AEProcessAppleEvent (&evt); | ||
1164 | break; | ||
1166 | } | 1165 | } |
1167 | } | 1166 | } |
1168 | } | 1167 | } |
@@ -3163,8 +3162,6 @@ void LLWindowMacOSX::spawnWebBrowser(const std::string& escaped_url) | |||
3163 | OSStatus result = noErr; | 3162 | OSStatus result = noErr; |
3164 | CFURLRef urlRef = NULL; | 3163 | CFURLRef urlRef = NULL; |
3165 | 3164 | ||
3166 | llinfos << "Opening URL " << escaped_url << llendl; | ||
3167 | |||
3168 | CFStringRef stringRef = CFStringCreateWithCString(NULL, escaped_url.c_str(), kCFStringEncodingUTF8); | 3165 | CFStringRef stringRef = CFStringCreateWithCString(NULL, escaped_url.c_str(), kCFStringEncodingUTF8); |
3169 | if (stringRef) | 3166 | if (stringRef) |
3170 | { | 3167 | { |
@@ -3194,6 +3191,32 @@ void LLWindowMacOSX::spawnWebBrowser(const std::string& escaped_url) | |||
3194 | } | 3191 | } |
3195 | } | 3192 | } |
3196 | 3193 | ||
3194 | void LLWindowMacOSX::ShellEx(const std::string& command) | ||
3195 | { | ||
3196 | OSStatus result = noErr; | ||
3197 | CFURLRef urlRef = NULL; | ||
3198 | |||
3199 | CFStringRef stringRef = CFStringCreateWithCString(NULL, command.c_str(), kCFStringEncodingUTF8); | ||
3200 | if (stringRef) | ||
3201 | { | ||
3202 | urlRef = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, stringRef, kCFURLPOSIXPathStyle, false); | ||
3203 | CFRelease(stringRef); | ||
3204 | } | ||
3205 | |||
3206 | if (urlRef) | ||
3207 | { | ||
3208 | result = LSOpenCFURLRef(urlRef, NULL); | ||
3209 | if (result != noErr) | ||
3210 | llinfos << "Error " << result << " on open." << llendl; | ||
3211 | |||
3212 | CFRelease(urlRef); | ||
3213 | } | ||
3214 | else | ||
3215 | { | ||
3216 | llinfos << "Error: couldn't create URL." << llendl; | ||
3217 | } | ||
3218 | } | ||
3219 | |||
3197 | BOOL LLWindowMacOSX::dialog_color_picker ( F32 *r, F32 *g, F32 *b) | 3220 | BOOL LLWindowMacOSX::dialog_color_picker ( F32 *r, F32 *g, F32 *b) |
3198 | { | 3221 | { |
3199 | BOOL retval = FALSE; | 3222 | BOOL retval = FALSE; |