summaryrefslogtreecommitdiff
path: root/indra/newview/llviewerwindow.cpp
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/newview/llviewerwindow.cpp
parentc767c906b299116a38de826f8a442962ca0637d9 (diff)
MAINT-8712 Crash on close in LLWindowWin32
Diffstat (limited to 'indra/newview/llviewerwindow.cpp')
-rw-r--r--indra/newview/llviewerwindow.cpp15
1 files changed, 14 insertions, 1 deletions
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;