From a162496da9044e695bc306321da1fb278259b9c6 Mon Sep 17 00:00:00 2001 From: Nat Goodspeed Date: Thu, 8 Oct 2009 22:48:02 -0400 Subject: DEV-40930: At app shutdown, clear LLModalDialog::sModalStack. Otherwise, any modal dialog still left open will crump on destruction with LL_ERRS. If we don't want the user to shut down the app with a modal dialog open, we should deal with it better than a popup that simply makes us look buggy. --- indra/llui/llmodaldialog.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'indra/llui/llmodaldialog.cpp') diff --git a/indra/llui/llmodaldialog.cpp b/indra/llui/llmodaldialog.cpp index f77ec5f4c7..387af05935 100644 --- a/indra/llui/llmodaldialog.cpp +++ b/indra/llui/llmodaldialog.cpp @@ -297,5 +297,16 @@ void LLModalDialog::onAppFocusGained() } } - - +void LLModalDialog::shutdownModals() +{ + // This method is only for use during app shutdown. ~LLModalDialog() + // checks sModalStack, and if the dialog instance is still there, it + // crumps with "Attempt to delete dialog while still in sModalStack!" But + // at app shutdown, all bets are off. If the user asks to shut down the + // app, we shouldn't have to care WHAT's open. Put differently, if a modal + // dialog is so crucial that we can't let the user terminate until s/he + // addresses it, we should reject a termination request. The current state + // of affairs is that we accept it, but then produce an llerrs popup that + // simply makes our software look unreliable. + sModalStack.clear(); +} -- cgit v1.2.3