Skip to content
Snippets Groups Projects
Commit 9f16d10f authored by andreykproductengine's avatar andreykproductengine
Browse files

MAINT-5651 Crashes on close from LLWindowWin32

parent 961d7933
No related branches found
No related tags found
No related merge requests found
......@@ -754,7 +754,6 @@ void LLWindowWin32::close()
// Make sure cursor is visible and we haven't mangled the clipping state.
setMouseClipping(FALSE);
showCursor();
// Go back to screen mode written in the registry.
if (mFullscreen)
......@@ -762,9 +761,23 @@ void LLWindowWin32::close()
resetDisplayResolution();
}
// Don't process events in our mainWindowProc any longer.
SetWindowLongPtr(mWindowHandle, GWLP_USERDATA, NULL);
if (mCallbacks)
{
mCallbacks->handleFocusLost(this);
}
else
{
showCursor();
}
// Clean up remaining GL state
LL_DEBUGS("Window") << "Shutting down GL" << LL_ENDL;
gGLManager.shutdownGL();
if (gGLManager.mInited)
{
LL_INFOS("Window") << "Cleaning up GL" << LL_ENDL;
gGLManager.shutdownGL();
}
LL_DEBUGS("Window") << "Releasing Context" << LL_ENDL;
if (mhRC)
......@@ -785,16 +798,16 @@ void LLWindowWin32::close()
// Restore gamma to the system values.
restoreGamma();
if (mhDC && !ReleaseDC(mWindowHandle, mhDC))
if (mhDC)
{
LL_WARNS("Window") << "Release of ghDC failed" << LL_ENDL;
if (!ReleaseDC(mWindowHandle, mhDC))
{
LL_WARNS("Window") << "Release of ghDC failed" << LL_ENDL;
}
mhDC = NULL;
}
LL_DEBUGS("Window") << "Destroying Window" << LL_ENDL;
// Don't process events in our mainWindowProc any longer.
SetWindowLongPtr(mWindowHandle, GWLP_USERDATA, NULL);
// Make sure we don't leave a blank toolbar button.
ShowWindow(mWindowHandle, SW_HIDE);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment