diff --git a/apps/openmw/mwgui/windowmanagerimp.cpp b/apps/openmw/mwgui/windowmanagerimp.cpp index 55331d933..a5c3a3b2a 100644 --- a/apps/openmw/mwgui/windowmanagerimp.cpp +++ b/apps/openmw/mwgui/windowmanagerimp.cpp @@ -908,23 +908,8 @@ namespace MWGui window->onFrame(frameDuration); } - /* - Start of tes3mp change (major) - - Custom GUI elements added by TES3MP often cause a crash here when their - mMainWidget becomes null, so a temporary fix has been added until a - more appropriate solution is researched - */ if (!mCurrentModals.empty()) - { - if (mCurrentModals.back()->mMainWidget != 0) - mCurrentModals.back()->onFrame(frameDuration); - else - mCurrentModals.pop_back(); - } - /* - End of tes3mp change (major) - */ + mCurrentModals.back()->onFrame(frameDuration); mKeyboardNavigation->onFrame(); diff --git a/apps/openmw/mwmp/GUIController.cpp b/apps/openmw/mwmp/GUIController.cpp index a1ca5f999..37e358388 100644 --- a/apps/openmw/mwmp/GUIController.cpp +++ b/apps/openmw/mwmp/GUIController.cpp @@ -100,8 +100,13 @@ void mwmp::GUIController::setChatVisible(bool chatVisible) void mwmp::GUIController::showDialogList(const mwmp::BasePlayer::GUIMessageBox &guiMessageBox) { MWBase::WindowManager *windowManager = MWBase::Environment::get().getWindowManager(); - windowManager->removeDialog(mListBox); - mListBox = nullptr; + + if (mListBox != NULL) + { + windowManager->removeDialog(mListBox); + windowManager->removeCurrentModal(mListBox); + mListBox = NULL; + } std::vector list;