summaryrefslogtreecommitdiff
path: root/indra/newview/llinventoryitemslist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinventoryitemslist.cpp')
-rw-r--r--indra/newview/llinventoryitemslist.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/indra/newview/llinventoryitemslist.cpp b/indra/newview/llinventoryitemslist.cpp
index 2d1d401cd4..1c3eb547bb 100644
--- a/indra/newview/llinventoryitemslist.cpp
+++ b/indra/newview/llinventoryitemslist.cpp
@@ -42,7 +42,7 @@
// llui
#include "lliconctrl.h"
-#include "lluitextutil.h"
+#include "lltextutil.h"
#include "llcallbacklist.h"
#include "llinventoryfunctions.h"
@@ -322,7 +322,7 @@ LLInventoryItemsList::Params::Params()
LLInventoryItemsList::LLInventoryItemsList(const LLInventoryItemsList::Params& p)
: LLFlatListViewEx(p)
, mNeedsRefresh(false)
-, mPrevVisibility(false)
+, mForceRefresh(false)
{
// TODO: mCommitOnSelectionChange is set to "false" in LLFlatListView
// but reset to true in all derived classes. This settings might need to
@@ -336,7 +336,9 @@ LLInventoryItemsList::LLInventoryItemsList(const LLInventoryItemsList::Params& p
// virtual
LLInventoryItemsList::~LLInventoryItemsList()
-{}
+{
+ gIdleCallbacks.deleteFunction(idle, this);
+}
void LLInventoryItemsList::refreshList(const LLInventoryModel::item_array_t item_array)
{
@@ -356,14 +358,13 @@ boost::signals2::connection LLInventoryItemsList::setRefreshCompleteCallback(con
void LLInventoryItemsList::doIdle()
{
- bool cur_visibility = getVisible();
- if(cur_visibility != mPrevVisibility || mNeedsRefresh)
+ if (!mNeedsRefresh) return;
+
+ if (isInVisibleChain() || mForceRefresh)
{
refresh();
mRefreshCompleteSignal(this, LLSD());
-
- mPrevVisibility = getVisible();
}
}
@@ -414,6 +415,7 @@ void LLInventoryItemsList::refresh()
bool needs_refresh = add_limit_exceeded;
setNeedsRefresh(needs_refresh);
+ setForceRefresh(needs_refresh);
}
void LLInventoryItemsList::computeDifference(