From 98740db8fd5875033d08b6aef6d9bf5c3c49eeee Mon Sep 17 00:00:00 2001 From: Josh Bell Date: Wed, 4 Apr 2007 19:49:24 +0000 Subject: svn merge -r 59826:59968 svn+ssh://svn.lindenlab.com/svn/linden/branches/maintenance --> release --- indra/newview/llpreviewanim.cpp | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'indra/newview/llpreviewanim.cpp') diff --git a/indra/newview/llpreviewanim.cpp b/indra/newview/llpreviewanim.cpp index 25273d035d..99cff4b718 100644 --- a/indra/newview/llpreviewanim.cpp +++ b/indra/newview/llpreviewanim.cpp @@ -73,11 +73,14 @@ LLPreviewAnim::LLPreviewAnim(const std::string& name, const LLRect& rect, const // static void LLPreviewAnim::endAnimCallback( void *userdata ) { - LLPreviewAnim* self = (LLPreviewAnim*) userdata; - - self->childSetValue("Anim play btn", FALSE); - self->childSetValue("Anim audition btn", FALSE); - + LLViewHandle* handlep = ((LLViewHandle*)userdata); + LLFloater* self = getFloaterByHandle(*handlep); + delete handlep; // done with the handle + if (self) + { + self->childSetValue("Anim play btn", FALSE); + self->childSetValue("Anim audition btn", FALSE); + } } // static @@ -105,7 +108,9 @@ void LLPreviewAnim::playAnim( void *userdata ) LLMotion* motion = avatar->findMotion(itemID); if (motion) - motion->setDeactivateCallback(&endAnimCallback, (void *)self); + { + motion->setDeactivateCallback(&endAnimCallback, (void *)(new LLViewHandle(self->getHandle()))); + } } else { @@ -140,7 +145,9 @@ void LLPreviewAnim::auditionAnim( void *userdata ) LLMotion* motion = avatar->findMotion(itemID); if (motion) - motion->setDeactivateCallback(&endAnimCallback, (void *)self); + { + motion->setDeactivateCallback(&endAnimCallback, (void *)(new LLViewHandle(self->getHandle()))); + } } else { @@ -190,8 +197,9 @@ void LLPreviewAnim::onClose(bool app_quitting) LLMotion* motion = avatar->findMotion(item->getAssetUUID()); if (motion) + { motion->setDeactivateCallback(NULL, (void *)NULL); - + } } destroy(); } -- cgit v1.2.3