summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2018-06-01 13:51:03 +0000
committerAndrey Kleshchev <andreykproductengine@lindenlab.com>2018-06-01 13:51:03 +0000
commit18bb3f6b86b32c4ca22f0466ee175d68969a03fd (patch)
tree643bf6eb4829b91cf802cc1fdb00169c86c81398 /indra
parentc767c906b299116a38de826f8a442962ca0637d9 (diff)
MAINT-8712 Crash on close in LLWindowWin32
Diffstat (limited to 'indra')
-rw-r--r--indra/llwindow/llwindowwin32.cpp8
-rw-r--r--indra/newview/llviewerwindow.cpp15
2 files changed, 22 insertions, 1 deletions
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 6e3aba51cf..f98c2423e5 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -2708,6 +2708,14 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
}
}
break;
+ default:
+ {
+ if (gDebugWindowProc)
+ {
+ LL_INFOS("Window") << "Unhandled windows message code: " << U32(u_msg) << LL_ENDL;
+ }
+ }
+ break;
}
window_imp->mCallbacks->handlePauseWatchdog(window_imp);
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index d54138b80e..f394d6913f 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2156,6 +2156,15 @@ void LLViewerWindow::shutdownViews()
RecordToChatConsole::getInstance()->stopRecorder();
LL_INFOS() << "Warning logger is cleaned." << LL_ENDL ;
+ gFocusMgr.unlockFocus();
+ gFocusMgr.setMouseCapture(NULL);
+ gFocusMgr.setKeyboardFocus(NULL);
+ gFocusMgr.setTopCtrl(NULL);
+ if (mWindow)
+ {
+ mWindow->allowLanguageTextInput(NULL, FALSE);
+ }
+
delete mDebugText;
mDebugText = NULL;
@@ -2188,7 +2197,11 @@ void LLViewerWindow::shutdownViews()
view_listener_t::cleanup();
LL_INFOS() << "view listeners destroyed." << LL_ENDL ;
-
+
+ // Clean up pointers that are going to be invalid. (todo: check sMenuContainer)
+ mProgressView = NULL;
+ mPopupView = NULL;
+
// Delete all child views.
delete mRootView;
mRootView = NULL;