summaryrefslogtreecommitdiff
path: root/indra/newview/llcolorswatch.cpp
diff options
context:
space:
mode:
authorcallum <none@none>2009-12-14 14:10:16 -0800
committercallum <none@none>2009-12-14 14:10:16 -0800
commit180daf3ab83ff9a83200c1952c0f09d20cfcb992 (patch)
tree4591d743023244614678022269d80ef6d8097f63 /indra/newview/llcolorswatch.cpp
parent894a5006b3e5b4c725060443dab34491b0da3a4d (diff)
parent5b6e4577ae6073650d78e1181ca5b60c527a7ae7 (diff)
Merge with Tip
Diffstat (limited to 'indra/newview/llcolorswatch.cpp')
-rw-r--r--indra/newview/llcolorswatch.cpp17
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();
}