diff options
| author | Richard Nelson <none@none> | 2010-03-29 15:28:48 -0700 |
|---|---|---|
| committer | Richard Nelson <none@none> | 2010-03-29 15:28:48 -0700 |
| commit | e50586043b3920864d58bb2243d977705d6669aa (patch) | |
| tree | 6bf311b77bdce138816f9d74f071bff5e1058531 /indra/llwindow/llwindowwin32.cpp | |
| parent | d98b2ce4865dc90e635fe75d676e4965bccfa793 (diff) | |
EXT-3258 - Viewer freezes while external web browser loads page
reviewed by Callum
Diffstat (limited to 'indra/llwindow/llwindowwin32.cpp')
| -rw-r--r-- | indra/llwindow/llwindowwin32.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 8df9dad581..d726c60018 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -2959,7 +2959,7 @@ S32 OSMessageBoxWin32(const std::string& text, const std::string& caption, U32 t } -void LLWindowWin32::spawnWebBrowser(const std::string& escaped_url ) +void LLWindowWin32::spawnWebBrowser(const std::string& escaped_url, bool async) { bool found = false; S32 i; @@ -2989,7 +2989,12 @@ void LLWindowWin32::spawnWebBrowser(const std::string& escaped_url ) // let the OS decide what to use to open the URL SHELLEXECUTEINFO sei = { sizeof( sei ) }; - sei.fMask = SEE_MASK_FLAG_DDEWAIT; + // NOTE: this assumes that SL will stick around long enough to complete the DDE message exchange + // necessary for ShellExecuteEx to complete + if (async) + { + sei.fMask = SEE_MASK_ASYNCOK; + } sei.nShow = SW_SHOWNORMAL; sei.lpVerb = L"open"; sei.lpFile = url_utf16.c_str(); |
