summaryrefslogtreecommitdiff
path: root/indra/newview/lltoolbarview.cpp
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@lindenlab.com>2025-12-03 11:50:32 -0500
committerGitHub <noreply@github.com>2025-12-03 11:50:32 -0500
commitbf347d15804c27348c84a55ab763f89b718e8aac (patch)
treea112d8ef3e65581fb1fae03a093a75637d134756 /indra/newview/lltoolbarview.cpp
parentaec7bf19ebffd9d6b60c68e31de723eabd6aa98a (diff)
parentad6008a5880dff8691f5fce56b7fbfc5ea8b1626 (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.cpp29
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);
+ }
}
}