diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-03-19 12:55:04 +0200 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2021-03-19 13:22:05 +0200 |
commit | a66932a091bac4d4ca1a861901b9cef619a406f7 (patch) | |
tree | 3132a44e61235eb68d9542221710ca399a8d105e /indra/llui/llfolderviewitem.cpp | |
parent | c0f28ae36261cc31d6412c42c05d1b7719a2c04b (diff) |
SL-14927 Some avatar names not resolving in chat
buildConversationViewParticipant() was deparenting view models that belong to session
Diffstat (limited to 'indra/llui/llfolderviewitem.cpp')
-rw-r--r-- | indra/llui/llfolderviewitem.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/indra/llui/llfolderviewitem.cpp b/indra/llui/llfolderviewitem.cpp index 9f6ceac768..31202f02bf 100644 --- a/indra/llui/llfolderviewitem.cpp +++ b/indra/llui/llfolderviewitem.cpp @@ -1608,7 +1608,7 @@ void LLFolderViewFolder::destroyView() // extractItem() removes the specified item from the folder, but // doesn't delete it. -void LLFolderViewFolder::extractItem( LLFolderViewItem* item ) +void LLFolderViewFolder::extractItem( LLFolderViewItem* item) { if (item->isSelected()) getRoot()->clearSelection(); @@ -1631,7 +1631,13 @@ void LLFolderViewFolder::extractItem( LLFolderViewItem* item ) mItems.erase(it); } //item has been removed, need to update filter - getViewModelItem()->removeChild(item->getViewModelItem()); + LLFolderViewModelItem* parent_model = getViewModelItem(); + LLFolderViewModelItem* child_model = item->getViewModelItem(); + if (child_model->getParent() == parent_model) + { + // in some cases model does not belong to parent view, is shared between views + parent_model->removeChild(child_model); + } //because an item is going away regardless of filter status, force rearrange requestArrange(); removeChild(item); |