diff options
Diffstat (limited to 'indra/llui')
-rwxr-xr-x | indra/llui/llfloater.cpp | 12 | ||||
-rwxr-xr-x | indra/llui/llpanel.cpp | 3 | ||||
-rwxr-xr-x | indra/llui/llpanel.h | 5 |
3 files changed, 17 insertions, 3 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 28dfda8faf..ae4961559e 100755 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -713,6 +713,18 @@ void LLFloater::closeFloater(bool app_quitting) { llinfos << "Closing floater " << getName() << llendl; + if (!app_quitting) + { + if ( mVerifyUponClose && !mForceCloseAfterVerify ) + { + onClose( app_quitting ); + if ( mForceCloseAfterVerify ) + { + return; + } + } + } + if (app_quitting) { LLFloater::sQuitting = true; diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp index 01165a5718..7b7920f866 100755 --- a/indra/llui/llpanel.cpp +++ b/indra/llui/llpanel.cpp @@ -116,7 +116,8 @@ LLPanel::LLPanel(const LLPanel::Params& p) mXMLFilename(p.filename), mVisibleSignal(NULL), mCloseConfirmationSignal(NULL), - mVerifyUponClose(false) + mVerifyUponClose(false), + mForceCloseAfterVerify(false) // *NOTE: Be sure to also change LLPanel::initFromParams(). We have too // many classes derived from LLPanel to retrofit them all to pass in params. { diff --git a/indra/llui/llpanel.h b/indra/llui/llpanel.h index 1b0beaa5c8..d48fab6dd9 100755 --- a/indra/llui/llpanel.h +++ b/indra/llui/llpanel.h @@ -255,8 +255,6 @@ public: boost::signals2::connection setVisibleCallback( const commit_signal_t::slot_type& cb ); boost::signals2::connection setCloseConfirmationCallback( const commit_signal_t::slot_type& cb ); -public: - const BOOL confirmClose() const { return mVerifyUponClose; } protected: // Override to set not found list @@ -276,6 +274,9 @@ protected: std::string mXMLFilename; //Specific close-down logic in subclass BOOL mVerifyUponClose; +public: + BOOL mForceCloseAfterVerify; + private: BOOL mBgVisible; // any background at all? BOOL mBgOpaque; // use opaque color or image |