diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/lltoastnotifypanel.cpp | 14 | ||||
-rw-r--r-- | indra/newview/lltoastnotifypanel.h | 1 |
2 files changed, 13 insertions, 2 deletions
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp index 9db4bc4d3f..fe8312784d 100644 --- a/indra/newview/lltoastnotifypanel.cpp +++ b/indra/newview/lltoastnotifypanel.cpp @@ -56,8 +56,9 @@ const std::string LLToastNotifyPanel::sFontScript("SansSerif"); LLToastNotifyPanel::button_click_signal_t LLToastNotifyPanel::sButtonClickSignal; LLToastNotifyPanel::LLToastNotifyPanel(const LLNotificationPtr& notification, const LLRect& rect, bool show_images) -: LLCheckBoxToastPanel(notification), - LLInstanceTracker<LLToastNotifyPanel, LLUUID, LLInstanceTrackerReplaceOnCollision>(notification->getID()) +: LLCheckBoxToastPanel(notification) +, LLInstanceTracker<LLToastNotifyPanel, LLUUID, LLInstanceTrackerReplaceOnCollision>(notification->getID()) +, mTextBox(NULL) { init(rect, show_images); } @@ -432,6 +433,15 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images ) } } +void LLToastNotifyPanel::deleteAllChildren() +{ + // some visibility changes, re-init and reshape will attempt to + // use mTextBox. Null it beforehand to avoid crashes. + mTextBox = NULL; + + LLCheckBoxToastPanel::deleteAllChildren(); +} + bool LLToastNotifyPanel::isControlPanelEnabled() const { bool cp_enabled = mControlPanel->getEnabled(); diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h index 4a6c2ada8a..8cfd0eb447 100644 --- a/indra/newview/lltoastnotifypanel.h +++ b/indra/newview/lltoastnotifypanel.h @@ -63,6 +63,7 @@ public: LLToastNotifyPanel(const LLNotificationPtr& pNotification, const LLRect& rect = LLRect::null, bool show_images = true); virtual void init( LLRect rect, bool show_images ); + virtual void deleteAllChildren(); virtual ~LLToastNotifyPanel(); LLPanel * getControlPanel() { return mControlPanel; } |