diff options
| author | Richard Linden <none@none> | 2012-02-15 10:24:45 -0800 | 
|---|---|---|
| committer | Richard Linden <none@none> | 2012-02-15 10:24:45 -0800 | 
| commit | a45ee6607b0b092cba26815417c734180fca3265 (patch) | |
| tree | 4303e7b3ade97a080c6a0cd8d825d601db72ac5c | |
| parent | 54900461f98a57c602e624aec86338a07b825462 (diff) | |
| parent | 51a8134f62ff0705ede2534945e808ccbd9d6b7e (diff) | |
Automated merge with ssh://hg.lindenlab.com/richard/viewer-experience
| -rw-r--r-- | indra/llui/llmenugl.cpp | 2 | ||||
| -rw-r--r-- | indra/llui/lltextbase.cpp | 13 | ||||
| -rw-r--r-- | indra/llui/llui.cpp | 2 | ||||
| -rw-r--r-- | indra/llui/llview.cpp | 5 | ||||
| -rw-r--r-- | indra/llui/llview.h | 2 | ||||
| -rw-r--r-- | indra/newview/llfolderview.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llfolderviewitem.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llinventorybridge.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llinventoryfilter.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llinventorymodelbackgroundfetch.cpp | 170 | ||||
| -rw-r--r-- | indra/newview/llinventorymodelbackgroundfetch.h | 4 | ||||
| -rw-r--r-- | indra/newview/llinventorypanel.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llpanelmaininventory.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llscreenchannel.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/lltoast.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llviewerinventory.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_about_land.xml | 4 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_choose_group.xml | 2 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_group_roles.xml | 2 | 
19 files changed, 144 insertions, 105 deletions
| diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index 1284231e52..ff6928ffda 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -3082,7 +3082,7 @@ void LLMenuGL::showPopup(LLView* spawning_view, LLMenuGL* menu, S32 x, S32 y)  		mouse_y + MOUSE_CURSOR_PADDING,   		CURSOR_WIDTH + MOUSE_CURSOR_PADDING * 2,   		CURSOR_HEIGHT + MOUSE_CURSOR_PADDING * 2); -	menu->translateIntoRectWithExclusion( menu_region_rect, mouse_rect, FALSE ); +	menu->translateIntoRectWithExclusion( menu_region_rect, mouse_rect );  	menu->getParent()->sendChildToFront(menu);  } diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index e2d9a6cb81..15c2d4946c 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -1192,7 +1192,7 @@ void LLTextBase::reflow()  		// shrink document to minimum size (visible portion of text widget)  		// to force inlined widgets with follows set to shrink -		mDocumentView->reshape(mVisibleTextRect.getWidth(), mDocumentView->getRect().getHeight()); +		//mDocumentView->reshape(mVisibleTextRect.getWidth(), mDocumentView->getRect().getHeight());  		S32 cur_top = 0; @@ -2380,6 +2380,9 @@ S32 LLTextBase::getEditableIndex(S32 index, bool increasing_direction)  void LLTextBase::updateRects()  { +	LLRect old_text_rect = mVisibleTextRect; +	mVisibleTextRect = mScroller ? mScroller->getContentWindowRect() : getLocalRect(); +  	if (mLineInfoList.empty())   	{  		mTextBoundingRect = LLRect(0, mVPad, mHPad, 0); @@ -2401,10 +2404,10 @@ void LLTextBase::updateRects()  		switch(mVAlign)  		{  		case LLFontGL::TOP: -			delta_pos = llmax(mVisibleTextRect.mTop - mTextBoundingRect.mTop, -mTextBoundingRect.mBottom); +			delta_pos = llmax(mVisibleTextRect.getHeight() - mTextBoundingRect.mTop, -mTextBoundingRect.mBottom);  			break;  		case LLFontGL::VCENTER: -			delta_pos = (llmax(mVisibleTextRect.mTop - mTextBoundingRect.mTop, -mTextBoundingRect.mBottom) + (mVisibleTextRect.mBottom - mTextBoundingRect.mBottom)) / 2; +			delta_pos = (llmax(mVisibleTextRect.getHeight() - mTextBoundingRect.mTop, -mTextBoundingRect.mBottom) + (mVisibleTextRect.mBottom - mTextBoundingRect.mBottom)) / 2;  			break;  		case LLFontGL::BOTTOM:  			delta_pos = mVisibleTextRect.mBottom - mTextBoundingRect.mBottom; @@ -2457,7 +2460,6 @@ void LLTextBase::updateRects()  	//update mVisibleTextRect *after* mDocumentView has been resized  	// so that scrollbars are added if document needs to scroll  	// since mVisibleTextRect does not include scrollbars -	LLRect old_text_rect = mVisibleTextRect;  	mVisibleTextRect = mScroller ? mScroller->getContentWindowRect() : getLocalRect();  	//FIXME: replace border with image?  	if (mBorderVisible) @@ -2604,8 +2606,7 @@ BOOL LLTextSegment::handleScrollWheel(S32 x, S32 y, S32 clicks) { return FALSE;  BOOL LLTextSegment::handleToolTip(S32 x, S32 y, MASK mask) { return FALSE; }  const std::string&	LLTextSegment::getName() const   { -	static std::string empty_string(""); -	return empty_string;  +	return LLStringUtil::null;  }  void LLTextSegment::onMouseCaptureLost() {}  void LLTextSegment::screenPointToLocal(S32 screen_x, S32 screen_y, S32* local_x, S32* local_y) const {} diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp index 137716743f..31ccec0d2a 100644 --- a/indra/llui/llui.cpp +++ b/indra/llui/llui.cpp @@ -2049,7 +2049,7 @@ void LLUI::positionViewNearMouse(LLView* view, S32 spawn_x, S32 spawn_y)  	// Start at spawn position (using left/top)  	view->setOrigin( local_x, local_y - view->getRect().getHeight());  	// Make sure we're on-screen and not overlapping the mouse -	view->translateIntoRectWithExclusion( virtual_window_rect, mouse_rect, FALSE ); +	view->translateIntoRectWithExclusion( virtual_window_rect, mouse_rect );  }  LLView* LLUI::resolvePath(LLView* context, const std::string& path) diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index d22e14745f..421166dcd4 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -1300,7 +1300,10 @@ void LLView::reshape(S32 width, S32 height, BOOL called_from_parent)  			S32 delta_x = child_rect.mLeft - viewp->getRect().mLeft;  			S32 delta_y = child_rect.mBottom - viewp->getRect().mBottom;  			viewp->translate( delta_x, delta_y ); -			viewp->reshape(child_rect.getWidth(), child_rect.getHeight()); +			if (child_rect.getWidth() != viewp->getRect().getWidth() || child_rect.getHeight() != viewp->getRect().getHeight()) +			{ +				viewp->reshape(child_rect.getWidth(), child_rect.getHeight()); +			}  		}  	} diff --git a/indra/llui/llview.h b/indra/llui/llview.h index de2fab963b..fd19309a56 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -371,7 +371,7 @@ public:  	virtual void	translate( S32 x, S32 y );  	void			setOrigin( S32 x, S32 y )	{ mRect.translate( x - mRect.mLeft, y - mRect.mBottom ); }  	BOOL			translateIntoRect( const LLRect& constraint, S32 min_overlap_pixels = S32_MAX); -	BOOL			translateIntoRectWithExclusion( const LLRect& inside, const LLRect& exclude, BOOL allow_partial_outside ); +	BOOL			translateIntoRectWithExclusion( const LLRect& inside, const LLRect& exclude, S32 min_overlap_pixels = S32_MAX);  	void			centerWithin(const LLRect& bounds);  	void	setShape(const LLRect& new_rect, bool by_user = false); diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp index 2249f61435..86001e4146 100644 --- a/indra/newview/llfolderview.cpp +++ b/indra/newview/llfolderview.cpp @@ -912,7 +912,7 @@ void LLFolderView::draw()  	}  	else if (mShowEmptyMessage)  	{ -		if (LLInventoryModelBackgroundFetch::instance().backgroundFetchActive() || mCompletedFilterGeneration < mFilter->getMinRequiredGeneration()) +		if (LLInventoryModelBackgroundFetch::instance().folderFetchActive() || mCompletedFilterGeneration < mFilter->getMinRequiredGeneration())  		{  			mStatusText = LLTrans::getString("Searching");  		} @@ -1966,7 +1966,7 @@ void LLFolderView::scrollToShowSelection()  	// However we allow scrolling for folder views with mAutoSelectOverride  	// (used in Places SP) as an exception because the selection in them  	// is not reset during items filtering. See STORM-133. -	if ( (!LLInventoryModelBackgroundFetch::instance().backgroundFetchActive() || mAutoSelectOverride) +	if ( (!LLInventoryModelBackgroundFetch::instance().folderFetchActive() || mAutoSelectOverride)  			&& mSelectedItems.size() )  	{  		mNeedsScroll = TRUE; diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index 734adbc648..afad27b4e0 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -1045,7 +1045,7 @@ void LLFolderViewItem::draw()  	}  	if ((mIsLoading  		&&	mTimeSinceRequestStart.getElapsedTimeF32() >= gSavedSettings.getF32("FolderLoadingMessageWaitTime")) -			||	(LLInventoryModelBackgroundFetch::instance().backgroundFetchActive() +			||	(LLInventoryModelBackgroundFetch::instance().folderFetchActive()  				&&	root_is_loading  				&&	mShowLoadStatus))  	{ diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 257ceed912..daebfb5c86 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -1324,6 +1324,7 @@ void LLItemBridge::selectItem()  	LLViewerInventoryItem* item = static_cast<LLViewerInventoryItem*>(getItem());  	if(item && !item->isFinished())  	{ +		//item->fetchFromServer();  		LLInventoryModelBackgroundFetch::instance().start(item->getUUID(), false);  	}  } diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp index 177ab28b36..4971ded634 100644 --- a/indra/newview/llinventoryfilter.cpp +++ b/indra/newview/llinventoryfilter.cpp @@ -884,7 +884,7 @@ const std::string& LLInventoryFilter::getFilterText()  		filtered_by_all_types = FALSE;  	} -	if (!LLInventoryModelBackgroundFetch::instance().backgroundFetchActive() +	if (!LLInventoryModelBackgroundFetch::instance().folderFetchActive()  		&& filtered_by_type  		&& !filtered_by_all_types)  	{ diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp index cb140cf15c..f4d0110b0f 100644 --- a/indra/newview/llinventorymodelbackgroundfetch.cpp +++ b/indra/newview/llinventorymodelbackgroundfetch.cpp @@ -43,6 +43,7 @@ const S32 MAX_FETCH_RETRIES = 10;  LLInventoryModelBackgroundFetch::LLInventoryModelBackgroundFetch() :  	mBackgroundFetchActive(FALSE), +	mFolderFetchActive(false),  	mAllFoldersFetched(FALSE),  	mRecursiveInventoryFetchStarted(FALSE),  	mRecursiveLibraryFetchStarted(FALSE), @@ -98,19 +99,20 @@ bool LLInventoryModelBackgroundFetch::isEverythingFetched() const  	return mAllFoldersFetched;  } -BOOL LLInventoryModelBackgroundFetch::backgroundFetchActive() const +BOOL LLInventoryModelBackgroundFetch::folderFetchActive() const  { -	return mBackgroundFetchActive; +	return mFolderFetchActive;  }  void LLInventoryModelBackgroundFetch::start(const LLUUID& id, BOOL recursive)  {  	LLViewerInventoryCategory* cat = gInventory.getCategory(id); -	if (cat || (id.isNull() && !mAllFoldersFetched)) +	if (cat || (id.isNull() && !isEverythingFetched()))  	{	// it's a folder, do a bulk fetch  		LL_DEBUGS("InventoryFetch") << "Start fetching category: " << id << ", recursive: " << recursive << LL_ENDL;  		mBackgroundFetchActive = TRUE; +		mFolderFetchActive = true;  		if (id.isNull())  		{  			if (!mRecursiveInventoryFetchStarted) @@ -159,21 +161,11 @@ void LLInventoryModelBackgroundFetch::start(const LLUUID& id, BOOL recursive)  void LLInventoryModelBackgroundFetch::findLostItems()  {  	mBackgroundFetchActive = TRUE; +	mFolderFetchActive = true;      mFetchQueue.push_back(FetchQueueInfo(LLUUID::null, TRUE));      gIdleCallbacks.addFunction(&LLInventoryModelBackgroundFetch::backgroundFetchCB, NULL);  } -void LLInventoryModelBackgroundFetch::stopBackgroundFetch() -{ -	if (mBackgroundFetchActive) -	{ -		mBackgroundFetchActive = FALSE; -		gIdleCallbacks.deleteFunction(&LLInventoryModelBackgroundFetch::backgroundFetchCB, NULL); -		mFetchCount=0; -		mMinTimeBetweenFetches=0.0f; -	} -} -  void LLInventoryModelBackgroundFetch::setAllFoldersFetched()  {  	if (mRecursiveInventoryFetchStarted && @@ -181,7 +173,7 @@ void LLInventoryModelBackgroundFetch::setAllFoldersFetched()  	{  		mAllFoldersFetched = TRUE;  	} -	stopBackgroundFetch(); +	mFolderFetchActive = false;  }  void LLInventoryModelBackgroundFetch::backgroundFetchCB(void *) @@ -211,6 +203,9 @@ void LLInventoryModelBackgroundFetch::backgroundFetch()  			llinfos << "Inventory fetch completed" << llendl;  			setAllFoldersFetched(); +			mBackgroundFetchActive = false; +			mFolderFetchActive = false; +  			return;  		} @@ -240,80 +235,114 @@ void LLInventoryModelBackgroundFetch::backgroundFetch()  			}  			const FetchQueueInfo info = mFetchQueue.front(); -			LLViewerInventoryCategory* cat = gInventory.getCategory(info.mUUID); -			// Category has been deleted, remove from queue. -			if (!cat) +			if (info.mIsCategory)  			{ -				mFetchQueue.pop_front(); -				continue; -			} + +				LLViewerInventoryCategory* cat = gInventory.getCategory(info.mUUID); + +				// Category has been deleted, remove from queue. +				if (!cat) +				{ +					mFetchQueue.pop_front(); +					continue; +				} -			if (mFetchTimer.getElapsedTimeF32() > mMinTimeBetweenFetches &&  -				LLViewerInventoryCategory::VERSION_UNKNOWN == cat->getVersion()) -			{ -				// Category exists but has no children yet, fetch the descendants -				// for now, just request every time and rely on retry timer to throttle. -				if (cat->fetch()) +				if (mFetchTimer.getElapsedTimeF32() > mMinTimeBetweenFetches &&  +					LLViewerInventoryCategory::VERSION_UNKNOWN == cat->getVersion())  				{ -					mFetchTimer.reset(); -					mTimelyFetchPending = TRUE; +					// Category exists but has no children yet, fetch the descendants +					// for now, just request every time and rely on retry timer to throttle. +					if (cat->fetch()) +					{ +						mFetchTimer.reset(); +						mTimelyFetchPending = TRUE; +					} +					else +					{ +						//  The catagory also tracks if it has expired and here it says it hasn't +						//  yet.  Get out of here because nothing is going to happen until we +						//  update the timers. +						break; +					}  				} -				else +				// Do I have all my children? +				else if (gInventory.isCategoryComplete(info.mUUID))  				{ -					//  The catagory also tracks if it has expired and here it says it hasn't -					//  yet.  Get out of here because nothing is going to happen until we -					//  update the timers. +					// Finished with this category, remove from queue. +					mFetchQueue.pop_front(); + +					// Add all children to queue. +					LLInventoryModel::cat_array_t* categories; +					LLInventoryModel::item_array_t* items; +					gInventory.getDirectDescendentsOf(cat->getUUID(), categories, items); +					for (LLInventoryModel::cat_array_t::const_iterator it = categories->begin(); +						 it != categories->end(); +						 ++it) +					{ +						mFetchQueue.push_back(FetchQueueInfo((*it)->getUUID(),info.mRecursive)); +					} + +					// We received a response in less than the fast time. +					if (mTimelyFetchPending && mFetchTimer.getElapsedTimeF32() < fast_fetch_time) +					{ +						// Shrink timeouts based on success. +						mMinTimeBetweenFetches = llmax(mMinTimeBetweenFetches * 0.8f, 0.3f); +						mMaxTimeBetweenFetches = llmax(mMaxTimeBetweenFetches * 0.8f, 10.f); +						lldebugs << "Inventory fetch times shrunk to (" << mMinTimeBetweenFetches << ", " << mMaxTimeBetweenFetches << ")" << llendl; +					} + +					mTimelyFetchPending = FALSE; +					continue; +				} +				else if (mFetchTimer.getElapsedTimeF32() > mMaxTimeBetweenFetches) +				{ +					// Received first packet, but our num descendants does not match db's num descendants +					// so try again later. +					mFetchQueue.pop_front(); + +					if (mNumFetchRetries++ < MAX_FETCH_RETRIES) +					{ +						// push on back of queue +						mFetchQueue.push_back(info); +					} +					mTimelyFetchPending = FALSE; +					mFetchTimer.reset();  					break;  				} + +				// Not enough time has elapsed to do a new fetch +				break;  			} -			// Do I have all my children? -			else if (gInventory.isCategoryComplete(info.mUUID)) +			else  			{ -				// Finished with this category, remove from queue. -				mFetchQueue.pop_front(); +				LLViewerInventoryItem* itemp = gInventory.getItem(info.mUUID); -				// Add all children to queue. -				LLInventoryModel::cat_array_t* categories; -				LLInventoryModel::item_array_t* items; -				gInventory.getDirectDescendentsOf(cat->getUUID(), categories, items); -				for (LLInventoryModel::cat_array_t::const_iterator it = categories->begin(); -					 it != categories->end(); -					 ++it) +				mFetchQueue.pop_front(); +				if (!itemp)   				{ -					mFetchQueue.push_back(FetchQueueInfo((*it)->getUUID(),info.mRecursive)); +					continue;  				} -				// We received a response in less than the fast time. -				if (mTimelyFetchPending && mFetchTimer.getElapsedTimeF32() < fast_fetch_time) +				if (mFetchTimer.getElapsedTimeF32() > mMinTimeBetweenFetches)  				{ -					// Shrink timeouts based on success. -					mMinTimeBetweenFetches = llmax(mMinTimeBetweenFetches * 0.8f, 0.3f); -					mMaxTimeBetweenFetches = llmax(mMaxTimeBetweenFetches * 0.8f, 10.f); -					lldebugs << "Inventory fetch times shrunk to (" << mMinTimeBetweenFetches << ", " << mMaxTimeBetweenFetches << ")" << llendl; +					itemp->fetchFromServer(); +					mFetchTimer.reset(); +					mTimelyFetchPending = TRUE;  				} - -				mTimelyFetchPending = FALSE; -				continue; -			} -			else if (mFetchTimer.getElapsedTimeF32() > mMaxTimeBetweenFetches) -			{ -				// Received first packet, but our num descendants does not match db's num descendants -				// so try again later. -				mFetchQueue.pop_front(); - -				if (mNumFetchRetries++ < MAX_FETCH_RETRIES) +				else if (itemp->mIsComplete) +				{ +					mTimelyFetchPending = FALSE; +				} +				else if (mFetchTimer.getElapsedTimeF32() > mMaxTimeBetweenFetches)  				{ -					// push on back of queue  					mFetchQueue.push_back(info); +					mFetchTimer.reset(); +					mTimelyFetchPending = FALSE;  				} -				mTimelyFetchPending = FALSE; -				mFetchTimer.reset(); +				// Not enough time has elapsed to do a new fetch  				break;  			} - -			// Not enough time has elapsed to do a new fetch -			break;  		}  		// @@ -543,7 +572,6 @@ void LLInventoryModelBackgroundFetch::bulkFetch()  	//Background fetch is called from gIdleCallbacks in a loop until background fetch is stopped.  	//If there are items in mFetchQueue, we want to check the time since the last bulkFetch was   	//sent.  If it exceeds our retry time, go ahead and fire off another batch.   -	//Stopbackgroundfetch will be run from the Responder instead of here.    	LLViewerRegion* region = gAgent.getRegion();  	if (!region) return; @@ -574,12 +602,12 @@ void LLInventoryModelBackgroundFetch::bulkFetch()  	LLSD item_request_body;  	LLSD item_request_body_lib; -	while (!(mFetchQueue.empty()) && ((item_count + folder_count) < max_batch_size)) +	while (!mFetchQueue.empty()  +			&& (item_count + folder_count) < max_batch_size)  	{  		const FetchQueueInfo& fetch_info = mFetchQueue.front();  		if (fetch_info.mIsCategory)  		{ -  			const LLUUID &cat_id = fetch_info.mUUID;  			if (cat_id.isNull()) //DEV-17797  			{ diff --git a/indra/newview/llinventorymodelbackgroundfetch.h b/indra/newview/llinventorymodelbackgroundfetch.h index 0745407a8c..9dfedddd6d 100644 --- a/indra/newview/llinventorymodelbackgroundfetch.h +++ b/indra/newview/llinventorymodelbackgroundfetch.h @@ -48,7 +48,7 @@ public:  	// This gets triggered when performing a filter-search.  	void start(const LLUUID& cat_id = LLUUID::null, BOOL recursive = TRUE); -	BOOL backgroundFetchActive() const; +	BOOL folderFetchActive() const;  	bool isEverythingFetched() const; // completing the fetch once per session should be sufficient  	bool libraryFetchStarted() const; @@ -67,7 +67,6 @@ protected:  	void backgroundFetch();  	static void backgroundFetchCB(void*); // background fetch idle function -	void stopBackgroundFetch(); // stop fetch process  	void setAllFoldersFetched();  	bool fetchQueueContainsNoDescendentsOf(const LLUUID& cat_id) const; @@ -77,6 +76,7 @@ private:  	BOOL mAllFoldersFetched;  	BOOL mBackgroundFetchActive; +	bool mFolderFetchActive;  	S16 mFetchCount;  	BOOL mTimelyFetchPending;  	S32 mNumFetchRetries; diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 382569fa3a..01a8ecfb5d 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -817,7 +817,7 @@ BOOL LLInventoryPanel::handleHover(S32 x, S32 y, MASK mask)  	if(handled)  	{  		ECursorType cursor = getWindow()->getCursor(); -		if (LLInventoryModelBackgroundFetch::instance().backgroundFetchActive() && cursor == UI_CURSOR_ARROW) +		if (LLInventoryModelBackgroundFetch::instance().folderFetchActive() && cursor == UI_CURSOR_ARROW)  		{  			// replace arrow cursor with arrow and hourglass cursor  			getWindow()->setCursor(UI_CURSOR_WORKING); diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 374afb90be..c3c62920d3 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -567,7 +567,7 @@ void LLPanelMainInventory::updateItemcountText()  	std::string text = ""; -	if (LLInventoryModelBackgroundFetch::instance().backgroundFetchActive()) +	if (LLInventoryModelBackgroundFetch::instance().folderFetchActive())  	{  		text = getString("ItemcountFetching", string_args);  	} diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index 1045009a04..d340b304ca 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -327,8 +327,8 @@ void LLScreenChannel::onToastFade(LLToast* toast)  		bool delete_toast = !mCanStoreToasts || !toast->getCanBeStored();  		if(delete_toast)  		{ -			deleteToast(toast);  			mToastList.erase(it); +			deleteToast(toast);  		}  		else  		{ @@ -798,6 +798,7 @@ void LLScreenChannel::showToastsTop()  	}  	// Dismiss toasts we don't have space for (STORM-391). +	std::vector<LLToast*> toasts_to_hide;  	if(it != mToastList.rend())  	{  		mHiddenToastsNum = 0; @@ -806,10 +807,17 @@ void LLScreenChannel::showToastsTop()  			LLToast* toast = it->getToast();  			if (toast)  			{ -				toast->hide(); +				toasts_to_hide.push_back(toast);  			}  		}  	} + +	for (std::vector<LLToast*>::iterator it = toasts_to_hide.begin(), end_it = toasts_to_hide.end(); +		it != end_it; +		++it) +	{ +		(*it)->hide(); +	}  }  //-------------------------------------------------------------------------- diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp index cdc611f7af..0eec7f0afd 100644 --- a/indra/newview/lltoast.cpp +++ b/indra/newview/lltoast.cpp @@ -180,11 +180,14 @@ LLToast::~LLToast()  //--------------------------------------------------------------------------  void LLToast::hide()  { -	setVisible(FALSE); -	setFading(false); -	mTimer->stop(); -	mIsHidden = true; -	mOnFadeSignal(this);  +	if (!mIsHidden) +	{ +		setVisible(FALSE); +		setFading(false); +		mTimer->stop(); +		mIsHidden = true; +		mOnFadeSignal(this);  +	}  }  void LLToast::onFocusLost() diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index cf52b5165b..45ca23cdfe 100644 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -436,11 +436,6 @@ void LLViewerInventoryItem::fetchFromServer(void) const  			gAgent.sendReliableMessage();  		}  	} -	else -	{ -		// *FIX: this can be removed after a bit. -		llwarns << "request to fetch complete item" << llendl; -	}  }  // virtual diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index 2781717f0b..a737c123c6 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -2085,7 +2085,7 @@ Only large parcels can be listed in search.               column_padding="0"               follows="top|bottom"               heading_height="14" -             height="120" +             height="125"               layout="topleft"               left="0"               multi_select="true" @@ -2134,7 +2134,7 @@ Only large parcels can be listed in search.               column_padding="0"               follows="top|bottom"               heading_height="14" -             height="120" +             height="125"               layout="topleft"               left="0"               multi_select="true" diff --git a/indra/newview/skins/default/xui/en/floater_choose_group.xml b/indra/newview/skins/default/xui/en/floater_choose_group.xml index dc1ee5f24e..2cf6e682fd 100644 --- a/indra/newview/skins/default/xui/en/floater_choose_group.xml +++ b/indra/newview/skins/default/xui/en/floater_choose_group.xml @@ -20,7 +20,7 @@          Choose a group:      </text>      <scroll_list -     height="160" +     height="165"       layout="topleft"       left_delta="0"       name="group list" diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml index a7178dc288..eea2606125 100644 --- a/indra/newview/skins/default/xui/en/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml @@ -172,7 +172,7 @@ including the Everyone and Owner Roles.               draw_heading="true"               draw_stripes="false"               heading_height="23" -             height="130" +             height="132"               layout="topleft"               search_column="1"               left="0" | 
