diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/LLTestCommand.cmake | 2 | ||||
| -rw-r--r-- | indra/cmake/Variables.cmake | 1 | ||||
| -rw-r--r-- | indra/llcommon/llversionviewer.h | 2 | ||||
| -rw-r--r-- | indra/llui/lltextbase.cpp | 103 | ||||
| -rw-r--r-- | indra/llui/lltextbase.h | 4 | ||||
| -rw-r--r-- | indra/newview/character/avatar_lad.xml | 20 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llinventorymodel.cpp | 19 | ||||
| -rw-r--r-- | indra/newview/llinventorymodel.h | 5 | ||||
| -rw-r--r-- | indra/newview/llinventorymodelbackgroundfetch.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llinventoryobserver.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/llinventoryobserver.h | 1 | ||||
| -rw-r--r-- | indra/newview/llphysicsmotion.cpp | 29 | ||||
| -rw-r--r-- | indra/newview/llsyswellwindow.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llwearabletype.cpp | 4 | ||||
| -rw-r--r-- | indra/test_apps/llplugintest/llmediaplugintest.cpp | 10 | 
16 files changed, 141 insertions, 86 deletions
| diff --git a/indra/cmake/LLTestCommand.cmake b/indra/cmake/LLTestCommand.cmake index 554559edbd..7e9854dc4c 100644 --- a/indra/cmake/LLTestCommand.cmake +++ b/indra/cmake/LLTestCommand.cmake @@ -1,3 +1,5 @@ +include(Python) +  MACRO(LL_TEST_COMMAND OUTVAR LD_LIBRARY_PATH)    # nat wonders how Kitware can use the term 'function' for a construct that    # cannot return a value. And yet, variables you set inside a FUNCTION are diff --git a/indra/cmake/Variables.cmake b/indra/cmake/Variables.cmake index 77dd34d122..8c9c375790 100644 --- a/indra/cmake/Variables.cmake +++ b/indra/cmake/Variables.cmake @@ -135,6 +135,7 @@ set(VIEWER_LOGIN_CHANNEL ${VIEWER_CHANNEL} CACHE STRING "Fake login channel for  set(VERSION_BUILD "0" CACHE STRING "Revision number passed in from the outside")  set(STANDALONE OFF CACHE BOOL "Do not use Linden-supplied prebuilt libraries.") +set(UNATTENDED OFF CACHE BOOL "Should be set to ON for building with VC Express editions.")  if (NOT STANDALONE AND EXISTS ${CMAKE_SOURCE_DIR}/llphysics)      set(SERVER ON CACHE BOOL "Build Second Life server software.") diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index bd6df962a1..df5afcbf1c 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@  const S32 LL_VERSION_MAJOR = 2;  const S32 LL_VERSION_MINOR = 6; -const S32 LL_VERSION_PATCH = 5; +const S32 LL_VERSION_PATCH = 6;  const S32 LL_VERSION_BUILD = 0;  const char * const LL_CHANNEL = "Second Life Developer"; diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 49537ef78f..82269282ef 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -157,6 +157,7 @@ LLTextBase::Params::Params()  	read_only("read_only", false),  	v_pad("v_pad", 0),  	h_pad("h_pad", 0), +	clip("clip", true),  	clip_partial("clip_partial", true),  	line_spacing("line_spacing"),  	max_text_length("max_length", 255), @@ -199,6 +200,7 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p)  	mVAlign(p.font_valign),  	mLineSpacingMult(p.line_spacing.multiple),  	mLineSpacingPixels(p.line_spacing.pixels), +	mClip(p.clip),  	mClipPartial(p.clip_partial && !p.allow_scroll),  	mTrackEnd( p.track_end ),  	mScrollIndex(-1), @@ -334,7 +336,7 @@ void LLTextBase::drawSelectionBackground()  		// binary search for line that starts before top of visible buffer  		line_list_t::const_iterator line_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), content_display_rect.mTop, compare_bottom()); -		line_list_t::const_iterator end_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), content_display_rect.mBottom, compare_top()); +		line_list_t::const_iterator end_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), content_display_rect.mBottom, compare_top());  		bool done = false; @@ -512,7 +514,6 @@ void LLTextBase::drawText()  		selection_right = llmax( mSelectionStart, mSelectionEnd );  	} -	LLRect scrolled_view_rect = getVisibleDocumentRect();  	std::pair<S32, S32> line_range = getVisibleLines(mClipPartial);  	S32 first_line = line_range.first;  	S32 last_line = line_range.second; @@ -545,10 +546,10 @@ void LLTextBase::drawText()  			line_end = next_start;  		} -		LLRect text_rect(line.mRect.mLeft + mVisibleTextRect.mLeft - scrolled_view_rect.mLeft, -						line.mRect.mTop - scrolled_view_rect.mBottom + mVisibleTextRect.mBottom, -						llmin(mDocumentView->getRect().getWidth(), line.mRect.mRight) - scrolled_view_rect.mLeft, -						line.mRect.mBottom - scrolled_view_rect.mBottom + mVisibleTextRect.mBottom); +		LLRect text_rect(line.mRect); +		text_rect.mRight = llmin(mDocumentView->getRect().getWidth(), text_rect.mRight); // clamp right edge to document extents +		text_rect.translate(mVisibleTextRect.mLeft, mVisibleTextRect.mBottom); // translate into display region of text widget +		text_rect.translate(mDocumentView->getRect().mLeft, mDocumentView->getRect().mBottom); // adjust by scroll position  		// draw a single line of text  		S32 seg_start = line_start; @@ -993,14 +994,28 @@ void LLTextBase::draw()  		updateScrollFromCursor();  	} -	LLRect doc_rect; +	LLRect text_rect;  	if (mScroller)  	{ -		mScroller->localRectToOtherView(mScroller->getContentWindowRect(), &doc_rect, this); +		mScroller->localRectToOtherView(mScroller->getContentWindowRect(), &text_rect, this);  	}  	else  	{ -		doc_rect = getLocalRect(); +		LLRect visible_lines_rect; +		std::pair<S32, S32> line_range = getVisibleLines(mClipPartial); +		for (S32 i = line_range.first; i < line_range.second; i++) +		{ +			if (visible_lines_rect.isEmpty()) +			{ +				visible_lines_rect = mLineInfoList[i].mRect; +			} +			else +			{ +				visible_lines_rect.unionWith(mLineInfoList[i].mRect); +			} +		} +		text_rect = visible_lines_rect; +		text_rect.translate(mDocumentView->getRect().mLeft, mDocumentView->getRect().mBottom);  	}  	if (mBGVisible) @@ -1010,28 +1025,37 @@ void LLTextBase::draw()  		LLRect bg_rect = mVisibleTextRect;  		if (mScroller)  		{ -			bg_rect.intersectWith(doc_rect); +			bg_rect.intersectWith(text_rect);  		}  		LLColor4 bg_color = mReadOnly   							? mReadOnlyBgColor.get()  							: hasFocus()   								? mFocusBgColor.get()   								: mWriteableBgColor.get(); -		gl_rect_2d(doc_rect, bg_color % alpha, TRUE); +		gl_rect_2d(text_rect, bg_color % alpha, TRUE);  	} -	// draw document view -	LLUICtrl::draw(); - -	{ -		// only clip if we support scrolling... -		// since convention is that text boxes never vertically truncate their contents -		// regardless of rect bounds -		LLLocalClipRect clip(doc_rect, mScroller != NULL); + 	bool should_clip = mClip || mScroller != NULL; + 	{ LLLocalClipRect clip(text_rect, should_clip); +  + 		// draw document view + 		if (mScroller) +		{ + 			drawChild(mScroller); + 		} + 		else + 		{ + 			drawChild(mDocumentView); + 		} +   		drawSelectionBackground();  		drawText();  		drawCursor();  	} +  + 	mDocumentView->setVisible(FALSE); + 	LLUICtrl::draw(); + 	mDocumentView->setVisible(TRUE);  } @@ -1415,7 +1439,7 @@ S32	LLTextBase::getFirstVisibleLine() const  	return iter - mLineInfoList.begin();  } -std::pair<S32, S32>	LLTextBase::getVisibleLines(bool fully_visible)  +std::pair<S32, S32>	LLTextBase::getVisibleLines(bool require_fully_visible)   {  	LLRect visible_region = getVisibleDocumentRect();  	line_list_t::const_iterator first_iter; @@ -1424,14 +1448,14 @@ std::pair<S32, S32>	LLTextBase::getVisibleLines(bool fully_visible)  	// make sure we have an up-to-date mLineInfoList  	reflow(); -	if (fully_visible) +	if (require_fully_visible)  	{  		first_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mTop, compare_top()); -		last_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mBottom, compare_bottom()); +		last_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mBottom, compare_bottom());  	}  	else  	{ -		first_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mTop, compare_bottom()); +		first_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mTop, compare_bottom());  		last_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mBottom, compare_top());  	}  	return std::pair<S32, S32>(first_iter - mLineInfoList.begin(), last_iter - mLineInfoList.begin()); @@ -2405,14 +2429,41 @@ LLRect LLTextBase::getVisibleDocumentRect() const  	{  		return mScroller->getVisibleContentRect();  	} -	else +	else if (mClip)  	{ -		// entire document rect is visible when not scrolling +		LLRect visible_text_rect = getVisibleTextRect(); +		LLRect doc_rect = mDocumentView->getRect(); +		visible_text_rect.translate(-doc_rect.mLeft, -doc_rect.mBottom); + +		// reject partially visible lines +		LLRect visible_lines_rect; +		for (line_list_t::const_iterator it = mLineInfoList.begin(), end_it = mLineInfoList.end(); +			it != end_it; +			++it) +		{ +			bool line_visible = mClipPartial ? visible_text_rect.contains(it->mRect) : visible_text_rect.overlaps(it->mRect); +			if (line_visible) +			{ +				if (visible_lines_rect.isEmpty()) +				{ +					visible_lines_rect = it->mRect; +				} +				else +				{ +					visible_lines_rect.unionWith(it->mRect); +				} +			} +		} +		return visible_lines_rect; +	} +	else +	{	// entire document rect is visible  		// but offset according to height of widget +	  		LLRect doc_rect = mDocumentView->getLocalRect();  		doc_rect.mLeft -= mDocumentView->getRect().mLeft;  		// adjust for height of text above widget baseline -		doc_rect.mBottom = doc_rect.getHeight() - mVisibleTextRect.getHeight(); +		doc_rect.mBottom = llmin(0, doc_rect.getHeight() - mVisibleTextRect.getHeight());  		return doc_rect;  	}  } diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index aafcf8ceb0..7d545a1ba6 100644 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -265,6 +265,7 @@ public:  								use_ellipses,  								parse_urls,  								parse_highlights, +								clip,  								clip_partial;  		Optional<S32>			v_pad, @@ -338,7 +339,7 @@ public:  	void					addDocumentChild(LLView* view);  	void					removeDocumentChild(LLView* view);  	const LLView*			getDocumentView() const { return mDocumentView; } -	LLRect					getVisibleTextRect() { return mVisibleTextRect; } +	LLRect					getVisibleTextRect() const { return mVisibleTextRect; }  	LLRect					getTextBoundingRect();  	LLRect					getVisibleDocumentRect() const; @@ -552,6 +553,7 @@ protected:  	bool						mTrackEnd;			// if true, keeps scroll position at end of document during resize  	bool						mReadOnly;  	bool						mBGVisible;			// render background? +	bool						mClip;				// clip text to widget rect  	bool						mClipPartial;		// false if we show lines that are partially inside bounding rect  	bool						mPlainText;			// didn't use Image or Icon segments  	S32							mMaxTextByteLength;	// Maximum length mText is allowed to be in bytes diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index 85899603ee..ec162e3608 100644 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -4339,8 +4339,8 @@       wearable="shape"       edit_group="driven"       value_default="0" -     value_min="-2" -     value_max="2"> +     value_min="-3" +     value_max="3">        <param_morph />      </param> @@ -4352,8 +4352,8 @@       wearable="shape"       edit_group="driven"       value_default="0" -     value_min="-1" -     value_max="1"> +     value_min="-1.5" +     value_max="1.5">        <param_morph />      </param> @@ -11916,7 +11916,7 @@ render_pass="bump">       edit_group="physics_breasts_updown"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -11971,7 +11971,7 @@ render_pass="bump">       edit_group="physics_breasts_inout"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -12058,7 +12058,7 @@ render_pass="bump">       edit_group="physics_belly_updown"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -12144,7 +12144,7 @@ render_pass="bump">       edit_group="physics_butt_updown"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -12193,7 +12193,7 @@ render_pass="bump">       edit_group="physics_butt_leftright"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param @@ -12244,7 +12244,7 @@ render_pass="bump">       edit_group="physics_breasts_leftright"       value_default=".1"       value_min="0" -     value_max="1"> +     value_max="3">  	 <param_driver />      </param>      <param diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 90c9912d1d..5e5c0f71db 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2468,6 +2468,14 @@ bool LLAppViewer::initConfiguration()  		}  	} +	// If automatic login from command line with --login switch +	// init StartSLURL location. In interactive login, LLPanelLogin +	// will take care of it. +	if ((clp.hasOption("login") || clp.hasOption("autologin")) && !clp.hasOption("url") && !clp.hasOption("slurl")) +	{ +		LLStartUp::setStartSLURL(LLSLURL(gSavedSettings.getString("LoginLocation"))); +	} +  	if (!gSavedSettings.getBOOL("AllowMultipleViewers"))  	{  	    // diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp index 53835f0166..b1975c7261 100644 --- a/indra/newview/llinventorymodel.cpp +++ b/indra/newview/llinventorymodel.cpp @@ -1059,12 +1059,11 @@ void LLInventoryModel::idleNotifyObservers()  	{  		return;  	} -	notifyObservers(""); +	notifyObservers();  }  // Call this method when it's time to update everyone on a new state. -// The optional argument 'service_name' is used by Agent Inventory Service [DEV-20328] -void LLInventoryModel::notifyObservers(const std::string service_name) +void LLInventoryModel::notifyObservers()  {  	if (mIsNotifyObservers)  	{ @@ -1081,15 +1080,7 @@ void LLInventoryModel::notifyObservers(const std::string service_name)  	{  		LLInventoryObserver* observer = *iter; -		if (service_name.empty()) -		{ -			observer->changed(mModifyMask); -		} -		else -		{ -			observer->mMessageName = service_name; -			observer->changed(mModifyMask); -		} +		observer->changed(mModifyMask);  		// safe way to increment since changed may delete entries! (@!##%@!@&*!)  		iter = mObservers.upper_bound(observer);  @@ -1187,7 +1178,7 @@ void  LLInventoryModel::fetchInventoryResponder::result(const LLSD& content)  	{  		changes |= gInventory.updateItem(*it);  	} -	gInventory.notifyObservers("fetchinventory"); +	gInventory.notifyObservers();  	gViewerWindow->getWindow()->decBusyCount();  } @@ -1196,7 +1187,7 @@ void LLInventoryModel::fetchInventoryResponder::error(U32 status, const std::str  {  	llinfos << "fetchInventory::error "  		<< status << ": " << reason << llendl; -	gInventory.notifyObservers("fetchinventory"); +	gInventory.notifyObservers();  }  bool LLInventoryModel::fetchDescendentsOf(const LLUUID& folder_id) const diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h index f6728fd575..15da09990f 100644 --- a/indra/newview/llinventorymodel.h +++ b/indra/newview/llinventorymodel.h @@ -425,9 +425,8 @@ public:  	// has been indicated.  	void idleNotifyObservers(); -	// Call to explicitly update everyone on a new state.  The optional argument -	// 'service_name' is used by Agent Inventory Service [DEV-20328] -	void notifyObservers(const std::string service_name=""); +	// Call to explicitly update everyone on a new state. +	void notifyObservers();  	// Allows outsiders to tell the inventory if something has  	// been changed 'under the hood', but outside the control of the diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp index e31360fcbc..7b1ff102e7 100644 --- a/indra/newview/llinventorymodelbackgroundfetch.cpp +++ b/indra/newview/llinventorymodelbackgroundfetch.cpp @@ -388,7 +388,7 @@ void LLInventoryModelFetchDescendentsResponder::result(const LLSD& content)                          titem->setParent(lost_uuid);                          titem->updateParentOnServer(FALSE);                          gInventory.updateItem(titem); -                        gInventory.notifyObservers("fetchDescendents"); +                        gInventory.notifyObservers();                      }                  } @@ -464,7 +464,7 @@ void LLInventoryModelFetchDescendentsResponder::result(const LLSD& content)  		fetcher->setAllFoldersFetched();  	} -	gInventory.notifyObservers("fetchDescendents"); +	gInventory.notifyObservers();  }  // If we get back an error (not found, etc...), handle it here. @@ -496,7 +496,7 @@ void LLInventoryModelFetchDescendentsResponder::error(U32 status, const std::str  			fetcher->setAllFoldersFetched();  		}  	} -	gInventory.notifyObservers("fetchDescendents"); +	gInventory.notifyObservers();  }  BOOL LLInventoryModelFetchDescendentsResponder::getIsRecursive(const LLUUID& cat_id) const diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp index 0fd4b2bee5..6bf19e346d 100644 --- a/indra/newview/llinventoryobserver.cpp +++ b/indra/newview/llinventoryobserver.cpp @@ -572,16 +572,7 @@ void LLInventoryAddedObserver::changed(U32 mask)  	// the network, figure out which item was updated.  	LLMessageSystem* msg = gMessageSystem; -	std::string msg_name; -	if (mMessageName.empty()) -	{ -		msg_name = msg->getMessageName(); -	} -	else -	{ -		msg_name = mMessageName; -	} - +	std::string msg_name = msg->getMessageName();  	if (msg_name.empty())  	{  		return; diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h index f2a2049a51..2d9021961e 100644 --- a/indra/newview/llinventoryobserver.h +++ b/indra/newview/llinventoryobserver.h @@ -63,7 +63,6 @@ public:  	LLInventoryObserver();  	virtual ~LLInventoryObserver();  	virtual void changed(U32 mask) = 0; -	std::string mMessageName; // used by Agent Inventory Service only. [DEV-20328]  };  //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/indra/newview/llphysicsmotion.cpp b/indra/newview/llphysicsmotion.cpp index 968e62a8c3..23fa0cbd9c 100644 --- a/indra/newview/llphysicsmotion.cpp +++ b/indra/newview/llphysicsmotion.cpp @@ -121,7 +121,8 @@ protected:                  return mCharacter->getVisualParamWeight(param_name.c_str());          }          void setParamValue(LLViewerVisualParam *param, -                           const F32 new_value_local); +                           const F32 new_value_local, +						   F32 behavior_maxeffect);          F32 toLocal(const LLVector3 &world);          F32 calculateVelocity_local(const F32 time_delta); @@ -472,9 +473,6 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)          F32 behavior_maxeffect = getParamValue("MaxEffect");          if (physics_test)                  behavior_maxeffect = 1.0f; -        // Maximum effect is [0,1] range. -        const F32 min_val = 0.5f-behavior_maxeffect/2.0; -        const F32 max_val = 0.5f+behavior_maxeffect/2.0;          // mPositon_local should be in normalized 0,1 range already.  Just making sure...          F32 position_current_local = llclamp(mPosition_local, @@ -572,12 +570,12 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)              position_new_local = position_user_local;          // Zero out the velocity if the param is being pushed beyond its limits. -        if ((position_new_local < min_val && velocity_new_local < 0) ||  -            (position_new_local > max_val && velocity_new_local > 0)) +        if ((position_new_local < 0 && velocity_new_local < 0) ||  +            (position_new_local > 1 && velocity_new_local > 0))          {                  velocity_new_local = 0;          } - +	  	// Check for NaN values.  A NaN value is detected if the variables doesn't equal itself.    	// If NaN, then reset everything.  	if ((mPosition_local != mPosition_local) || @@ -595,8 +593,8 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)  	}          const F32 position_new_local_clamped = llclamp(position_new_local, -						       min_val, -						       max_val); +						       0.0f, +						       1.0f);          LLDriverParam *driver_param = dynamic_cast<LLDriverParam *>(mParamDriver);          llassert_always(driver_param); @@ -617,7 +615,7 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)                  {                          LLDrivenEntry &entry = (*iter);                          LLViewerVisualParam *driven_param = entry.mParam; -                        setParamValue(driven_param,position_new_local_clamped); +                        setParamValue(driven_param,position_new_local_clamped, behavior_maxeffect);                  }          } @@ -699,12 +697,19 @@ BOOL LLPhysicsMotion::onUpdate(F32 time)  // Range of new_value_local is assumed to be [0 , 1] normalized.  void LLPhysicsMotion::setParamValue(LLViewerVisualParam *param, -                                    F32 new_value_normalized) +                                    F32 new_value_normalized, +				    F32 behavior_maxeffect)  {          const F32 value_min_local = param->getMinWeight();          const F32 value_max_local = param->getMaxWeight(); +        const F32 min_val = 0.5f-behavior_maxeffect/2.0; +        const F32 max_val = 0.5f+behavior_maxeffect/2.0; -        const F32 new_value_local = value_min_local + (value_max_local-value_min_local) * new_value_normalized; +	// Scale from [0,1] to [min_val,max_val] +	const F32 new_value_rescaled = min_val + (max_val-min_val) * new_value_normalized; +	 +	// Scale from [0,1] to [value_min_local,value_max_local] +        const F32 new_value_local = value_min_local + (value_max_local-value_min_local) * new_value_rescaled;          mCharacter->setVisualParamWeight(param,                                           new_value_local, diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index e7b5c13860..cb49976e5f 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -310,7 +310,7 @@ void LLIMWellWindow::RowPanel::onChicletSizeChanged(LLChiclet* ctrl, const LLSD&  	S32 new_text_left = mChiclet->getRect().mRight + CHICLET_HPAD;  	LLRect text_rect = text->getRect();   	text_rect.mLeft = new_text_left; -	text->setRect(text_rect); +	text->setShape(text_rect);  }  //--------------------------------------------------------------------------------- diff --git a/indra/newview/llwearabletype.cpp b/indra/newview/llwearabletype.cpp index 5b4b820903..9e95604712 100644 --- a/indra/newview/llwearabletype.cpp +++ b/indra/newview/llwearabletype.cpp @@ -144,7 +144,7 @@ BOOL LLWearableType::getDisableCameraSwitch(LLWearableType::EType type)  {  	const LLWearableDictionary *dict = LLWearableDictionary::getInstance();  	const WearableEntry *entry = dict->lookup(type); -	if (!entry)	return FALSE; +	if (!entry) return FALSE;  	return entry->mDisableCameraSwitch;  } @@ -153,7 +153,7 @@ BOOL LLWearableType::getAllowMultiwear(LLWearableType::EType type)  {  	const LLWearableDictionary *dict = LLWearableDictionary::getInstance();  	const WearableEntry *entry = dict->lookup(type); -	if (!entry)	return FALSE; +	if (!entry) return FALSE;  	return entry->mAllowMultiwear;  } diff --git a/indra/test_apps/llplugintest/llmediaplugintest.cpp b/indra/test_apps/llplugintest/llmediaplugintest.cpp index e9d4d99753..7164934b26 100644 --- a/indra/test_apps/llplugintest/llmediaplugintest.cpp +++ b/indra/test_apps/llplugintest/llmediaplugintest.cpp @@ -4,7 +4,7 @@   *   * $LicenseInfo:firstyear=2008&license=viewerlgpl$   * Second Life Viewer Source Code - * Copyright (C) 2010, Linden Research, Inc. + * Copyright (C) 2011, Linden Research, Inc.   *    * This library is free software; you can redistribute it and/or   * modify it under the terms of the GNU Lesser General Public @@ -2233,7 +2233,13 @@ void LLMediaPluginTest::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent e  		case MEDIA_EVENT_LINK_HOVERED:  		{  			std::cerr <<  "Media event:  MEDIA_EVENT_LINK_HOVERED, hover text is: " << self->getHoverText() << std::endl; -		}; +		} +		break; + +		default: +		{ +			std::cerr <<  "Media event:  <unknown>, code is: " << int(event) << std::endl; +		}  		break;  	}  } | 
