Bringing in-line with V2. mbstowcs->MultiByteToWideChar, ancient comment removal, fullscreen behavior check...

This commit is contained in:
Shyotl
2011-04-23 01:01:55 -05:00
parent f190644464
commit c694d12c93
2 changed files with 21 additions and 75 deletions

View File

@@ -2841,8 +2841,16 @@ void LLSplashScreenWin32::updateImpl(const std::string& mesg)
{
if (!mWindow) return;
WCHAR w_mesg[1024];
mbstowcs(w_mesg, mesg.c_str(), 1024);
int output_str_len = MultiByteToWideChar(CP_UTF8, 0, mesg.c_str(), mesg.length(), NULL, 0);
if( output_str_len>1024 )
return;
WCHAR w_mesg[1025];//big enought to keep null terminatos
MultiByteToWideChar (CP_UTF8, 0, mesg.c_str(), mesg.length(), w_mesg, output_str_len);
//looks like MultiByteToWideChar didn't add null terminator to converted string, see EXT-4858
w_mesg[output_str_len] = 0;
SendDlgItemMessage(mWindow,
666, // HACK: text id
@@ -2970,78 +2978,6 @@ void LLWindowWin32::spawnWebBrowser(const std::string& escaped_url )
sei.lpFile = url_utf16.c_str();
ShellExecuteEx( &sei );
//// TODO: LEAVING OLD CODE HERE SO I DON'T BONE OTHER MERGES
//// DELETE THIS ONCE THE MERGES ARE DONE
// Figure out the user's default web browser
// HKEY_CLASSES_ROOT\http\shell\open\command
/*
std::string reg_path_str = gURLProtocolWhitelistHandler[i] + "\\shell\\open\\command";
WCHAR reg_path_wstr[256];
mbstowcs( reg_path_wstr, reg_path_str.c_str(), LL_ARRAY_SIZE(reg_path_wstr) );
HKEY key;
WCHAR browser_open_wstr[1024];
DWORD buffer_length = 1024;
RegOpenKeyEx(HKEY_CLASSES_ROOT, reg_path_wstr, 0, KEY_QUERY_VALUE, &key);
RegQueryValueEx(key, NULL, NULL, NULL, (LPBYTE)browser_open_wstr, &buffer_length);
RegCloseKey(key);
// Convert to STL string
LLWString browser_open_wstring = utf16str_to_wstring(browser_open_wstr);
if (browser_open_wstring.length() < 2)
{
LL_WARNS("Window") << "Invalid browser executable in registry " << browser_open_wstring << LL_ENDL;
return;
}
// Extract the process that's supposed to be launched
LLWString browser_executable;
if (browser_open_wstring[0] == '"')
{
// executable is quoted, find the matching quote
size_t quote_pos = browser_open_wstring.find('"', 1);
// copy out the string including both quotes
browser_executable = browser_open_wstring.substr(0, quote_pos+1);
}
else
{
// executable not quoted, find a space
size_t space_pos = browser_open_wstring.find(' ', 1);
browser_executable = browser_open_wstring.substr(0, space_pos);
}
LL_DEBUGS("Window") << "Browser reg key: " << wstring_to_utf8str(browser_open_wstring) << LL_ENDL;
LL_INFOS("Window") << "Browser executable: " << wstring_to_utf8str(browser_executable) << LL_ENDL;
// Convert URL to wide string for Windows API
// Assume URL is UTF8, as can come from scripts
LLWString url_wstring = utf8str_to_wstring(escaped_url);
llutf16string url_utf16 = wstring_to_utf16str(url_wstring);
// Convert executable and path to wide string for Windows API
llutf16string browser_exec_utf16 = wstring_to_utf16str(browser_executable);
// ShellExecute returns HINSTANCE for backwards compatiblity.
// MS docs say to cast to int and compare to 32.
HWND our_window = NULL;
LPCWSTR directory_wstr = NULL;
int retval = (int) ShellExecute(our_window, // Flawfinder: ignore
L"open",
browser_exec_utf16.c_str(),
url_utf16.c_str(),
directory_wstr,
SW_SHOWNORMAL);
if (retval > 32)
{
LL_DEBUGS("Window") << "load_url success with " << retval << LL_ENDL;
}
else
{
LL_INFOS("Window") << "load_url failure with " << retval << LL_ENDL;
}
*/
}

View File

@@ -686,11 +686,12 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask
llinfos << "Left Mouse Down not handled by view" << llendl;
}
// Do not allow tool manager to handle mouseclicks if we have disconnected
if (gDisconnected)
{
return FALSE;
}
if(LLToolMgr::getInstance()->getCurrentTool()->handleMouseDown( x, y, mask ) )
{
// This is necessary to force clicks in the world to cause edit
@@ -1499,6 +1500,15 @@ LLViewerWindow::LLViewerWindow(
LL_WARNS("Window") << " Someone took over my signal/exception handler (post createWindow)!" << LL_ENDL;
}
LLCoordScreen scr;
mWindow->getSize(&scr);
if(fullscreen && ( scr.mX!=width || scr.mY!=height))
{
llwarns << "Fullscreen has forced us in to a different resolution now using "<<scr.mX<<" x "<<scr.mY<<llendl;
gSavedSettings.setS32("FullScreenWidth",scr.mX);
gSavedSettings.setS32("FullScreenHeight",scr.mY);
}
if (NULL == mWindow)
{