@@ -110,7 +110,7 @@ bool LLToolBarView::postBuild()
110110 {
111111 mToolbars [i]->setStartDragCallback (boost::bind (LLToolBarView::startDragTool,_1,_2,_3));
112112 mToolbars [i]->setHandleDragCallback (boost::bind (LLToolBarView::handleDragTool,_1,_2,_3,_4));
113- mToolbars [i]->setHandleDropCallback (boost::bind (LLToolBarView::handleDropTool,_1,_2,_3,_4));
113+ mToolbars [i]->setHandleDropCallback (boost::bind (LLToolBarView::handleDropTool,_1,_2,_3,_4,_5 ));
114114 mToolbars [i]->setButtonAddCallback (boost::bind (LLToolBarView::onToolBarButtonAdded,_1));
115115 mToolbars [i]->setButtonRemoveCallback (boost::bind (LLToolBarView::onToolBarButtonRemoved,_1));
116116 }
@@ -624,8 +624,14 @@ bool LLToolBarView::handleDragTool( S32 x, S32 y, const LLUUID& uuid, LLAssetTyp
624624 return false ;
625625}
626626
627- bool LLToolBarView::handleDropTool ( void * cargo_data, S32 x, S32 y, LLToolBar* toolbar)
627+ bool LLToolBarView::handleDropTool ( void * cargo_data, EDragAndDropType cargo_type, S32 x, S32 y, LLToolBar* toolbar)
628628{
629+ if (cargo_type == DAD_PERSON)
630+ {
631+ // DAD_PERSON means that cargo_data contains an uuid, not an LLInventoryObject
632+ resetDragTool (NULL );
633+ return false ;
634+ }
629635 bool handled = false ;
630636 LLInventoryObject* inv_item = static_cast <LLInventoryObject*>(cargo_data);
631637
@@ -647,15 +653,18 @@ bool LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t
647653 if (old_toolbar_loc != LLToolBarEnums::TOOLBAR_NONE)
648654 {
649655 llassert (gToolBarView ->mDragToolbarButton );
650- old_toolbar = gToolBarView ->mDragToolbarButton ->getParentByType <LLToolBar>();
651- if (old_toolbar->isReadOnly () && toolbar->isReadOnly ())
652- {
653- // do nothing
654- }
655- else
656+ if (gToolBarView ->mDragToolbarButton )
656657 {
657- int old_rank = LLToolBar::RANK_NONE;
658- gToolBarView ->removeCommand (command_id, old_rank);
658+ old_toolbar = gToolBarView ->mDragToolbarButton ->getParentByType <LLToolBar>();
659+ if (old_toolbar->isReadOnly () && toolbar->isReadOnly ())
660+ {
661+ // do nothing
662+ }
663+ else
664+ {
665+ int old_rank = LLToolBar::RANK_NONE;
666+ gToolBarView ->removeCommand (command_id, old_rank);
667+ }
659668 }
660669 }
661670
0 commit comments