summaryrefslogtreecommitdiff
path: root/indra/llui/llflatlistview.cpp
diff options
context:
space:
mode:
authorLoren Shih <seraph@lindenlab.com>2010-07-14 10:17:10 -0400
committerLoren Shih <seraph@lindenlab.com>2010-07-14 10:17:10 -0400
commit6ce6ce238c68f7a6c99fef2baed9420caf09f848 (patch)
tree4291aa0cde0c982028382744fc236180245f23aa /indra/llui/llflatlistview.cpp
parentc5356935354013530432cfb07556902a039020a9 (diff)
parent4339600d43601f07d01c676cce5da17c2758c4cb (diff)
automated merge
Diffstat (limited to 'indra/llui/llflatlistview.cpp')
-rw-r--r--indra/llui/llflatlistview.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp
index b313f8c950..3c79da64f9 100644
--- a/indra/llui/llflatlistview.cpp
+++ b/indra/llui/llflatlistview.cpp
@@ -327,6 +327,9 @@ U32 LLFlatListView::size(const bool only_visible_items) const
void LLFlatListView::clear()
{
+ // This will clear mSelectedItemPairs, calling all appropriate callbacks.
+ resetSelection();
+
// do not use LLView::deleteAllChildren to avoid removing nonvisible items. drag-n-drop for ex.
for (pairs_iterator_t it = mItemPairs.begin(); it != mItemPairs.end(); ++it)
{
@@ -335,7 +338,6 @@ void LLFlatListView::clear()
delete *it;
}
mItemPairs.clear();
- mSelectedItemPairs.clear();
// also set items panel height to zero. Reshape it to allow reshaping of non-item children
LLRect rc = mItemsPanel->getRect();
@@ -975,6 +977,7 @@ bool LLFlatListView::removeItemPair(item_pair_t* item_pair, bool rearrange)
llassert(item_pair);
bool deleted = false;
+ bool selection_changed = false;
for (pairs_iterator_t it = mItemPairs.begin(); it != mItemPairs.end(); ++it)
{
item_pair_t* _item_pair = *it;
@@ -994,6 +997,7 @@ bool LLFlatListView::removeItemPair(item_pair_t* item_pair, bool rearrange)
if (selected_item_pair == item_pair)
{
it = mSelectedItemPairs.erase(it);
+ selection_changed = true;
break;
}
}
@@ -1008,6 +1012,11 @@ bool LLFlatListView::removeItemPair(item_pair_t* item_pair, bool rearrange)
notifyParentItemsRectChanged();
}
+ if (selection_changed && mCommitOnSelectionChange)
+ {
+ onCommit();
+ }
+
return true;
}