diff options
| author | callum <none@none> | 2009-12-14 14:10:16 -0800 |
|---|---|---|
| committer | callum <none@none> | 2009-12-14 14:10:16 -0800 |
| commit | 180daf3ab83ff9a83200c1952c0f09d20cfcb992 (patch) | |
| tree | 4591d743023244614678022269d80ef6d8097f63 /indra/newview/llcolorswatch.cpp | |
| parent | 894a5006b3e5b4c725060443dab34491b0da3a4d (diff) | |
| parent | 5b6e4577ae6073650d78e1181ca5b60c527a7ae7 (diff) | |
Merge with Tip
Diffstat (limited to 'indra/newview/llcolorswatch.cpp')
| -rw-r--r-- | indra/newview/llcolorswatch.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/indra/newview/llcolorswatch.cpp b/indra/newview/llcolorswatch.cpp index 442e9ab27b..dc6847f236 100644 --- a/indra/newview/llcolorswatch.cpp +++ b/indra/newview/llcolorswatch.cpp @@ -306,6 +306,21 @@ void LLColorSwatchCtrl::onColorChanged ( void* data, EColorPickOp pick_op ) } } +// This is called when the main floatercustomize panel is closed. +// Since this class has pointers up to its parents, we need to cleanup +// this class first in order to avoid a crash. +void LLColorSwatchCtrl::onParentFloaterClosed() +{ + LLFloaterColorPicker* pickerp = (LLFloaterColorPicker*)mPickerHandle.get(); + if (pickerp) + { + pickerp->setSwatch(NULL); + pickerp->closeFloater(); + } + + mPickerHandle.markDead(); +} + void LLColorSwatchCtrl::setValid(BOOL valid ) { mValid = valid; @@ -323,7 +338,7 @@ void LLColorSwatchCtrl::showPicker(BOOL take_focus) if (!pickerp) { pickerp = new LLFloaterColorPicker(this, mCanApplyImmediately); - gFloaterView->getParentFloater(this)->addDependentFloater(pickerp); + //gFloaterView->getParentFloater(this)->addDependentFloater(pickerp); mPickerHandle = pickerp->getHandle(); } |
