diff options
| author | Jonathan "Geenz" Goodman <geenz@lindenlab.com> | 2025-12-03 11:50:32 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-03 11:50:32 -0500 |
| commit | bf347d15804c27348c84a55ab763f89b718e8aac (patch) | |
| tree | a112d8ef3e65581fb1fae03a093a75637d134756 /indra/newview/lltoolbarview.cpp | |
| parent | aec7bf19ebffd9d6b60c68e31de723eabd6aa98a (diff) | |
| parent | ad6008a5880dff8691f5fce56b7fbfc5ea8b1626 (diff) | |
Merge pull request #4853 from secondlife/release/2025.08
Release/2025.08
Diffstat (limited to 'indra/newview/lltoolbarview.cpp')
| -rw-r--r-- | indra/newview/lltoolbarview.cpp | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/indra/newview/lltoolbarview.cpp b/indra/newview/lltoolbarview.cpp index 0063e0b7fd..c1ec5fa183 100644 --- a/indra/newview/lltoolbarview.cpp +++ b/indra/newview/lltoolbarview.cpp @@ -110,7 +110,7 @@ bool LLToolBarView::postBuild() { mToolbars[i]->setStartDragCallback(boost::bind(LLToolBarView::startDragTool,_1,_2,_3)); mToolbars[i]->setHandleDragCallback(boost::bind(LLToolBarView::handleDragTool,_1,_2,_3,_4)); - mToolbars[i]->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4)); + mToolbars[i]->setHandleDropCallback(boost::bind(LLToolBarView::handleDropTool,_1,_2,_3,_4,_5)); mToolbars[i]->setButtonAddCallback(boost::bind(LLToolBarView::onToolBarButtonAdded,_1)); mToolbars[i]->setButtonRemoveCallback(boost::bind(LLToolBarView::onToolBarButtonRemoved,_1)); } @@ -624,8 +624,14 @@ bool LLToolBarView::handleDragTool( S32 x, S32 y, const LLUUID& uuid, LLAssetTyp return false; } -bool LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* toolbar) +bool LLToolBarView::handleDropTool( void* cargo_data, EDragAndDropType cargo_type, S32 x, S32 y, LLToolBar* toolbar) { + if (cargo_type == DAD_PERSON) + { + // DAD_PERSON means that cargo_data contains an uuid, not an LLInventoryObject + resetDragTool(NULL); + return false; + } bool handled = false; LLInventoryObject* inv_item = static_cast<LLInventoryObject*>(cargo_data); @@ -647,15 +653,18 @@ bool LLToolBarView::handleDropTool( void* cargo_data, S32 x, S32 y, LLToolBar* t if (old_toolbar_loc != LLToolBarEnums::TOOLBAR_NONE) { llassert(gToolBarView->mDragToolbarButton); - old_toolbar = gToolBarView->mDragToolbarButton->getParentByType<LLToolBar>(); - if (old_toolbar->isReadOnly() && toolbar->isReadOnly()) - { - // do nothing - } - else + if (gToolBarView->mDragToolbarButton) { - int old_rank = LLToolBar::RANK_NONE; - gToolBarView->removeCommand(command_id, old_rank); + old_toolbar = gToolBarView->mDragToolbarButton->getParentByType<LLToolBar>(); + if (old_toolbar->isReadOnly() && toolbar->isReadOnly()) + { + // do nothing + } + else + { + int old_rank = LLToolBar::RANK_NONE; + gToolBarView->removeCommand(command_id, old_rank); + } } } |
