diff options
| -rw-r--r-- | indra/newview/llmanipscale.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llmaniptranslate.cpp | 10 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.h | 3 | 
3 files changed, 11 insertions, 7 deletions
| diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp index 72596e850a..aa385b43a1 100644 --- a/indra/newview/llmanipscale.cpp +++ b/indra/newview/llmanipscale.cpp @@ -493,8 +493,9 @@ void LLManipScale::highlightManipulators(S32 x, S32 y)  			mProjectedManipulators.insert(projManipulator);  		} -		F32 half_width = (F32)gViewerWindow->getWorldViewWidth() / 2.f; -		F32 half_height = (F32)gViewerWindow->getWorldViewHeight() / 2.f; +		LLRect world_view_rect = gViewerWindow->getVirtualWorldViewRect(); +		F32 half_width = (F32)world_view_rect.getWidth() / 2.f; +		F32 half_height = (F32)world_view_rect.getHeight() / 2.f;  		LLVector2 manip2d;  		LLVector2 mousePos((F32)x - half_width, (F32)y - half_height);  		LLVector2 delta; diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp index f1b3a37677..002b8350f7 100644 --- a/indra/newview/llmaniptranslate.cpp +++ b/indra/newview/llmaniptranslate.cpp @@ -413,8 +413,9 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)  	}  	// Handle auto-rotation if necessary. +	LLRect world_rect = gViewerWindow->getVirtualWorldViewRect();  	const F32 ROTATE_ANGLE_PER_SECOND = 30.f * DEG_TO_RAD; -	const S32 ROTATE_H_MARGIN = gViewerWindow->getWorldViewWidth() / 20; +	const S32 ROTATE_H_MARGIN = world_rect.getWidth() / 20;  	const F32 rotate_angle = ROTATE_ANGLE_PER_SECOND / gFPSClamped;  	BOOL rotated = FALSE; @@ -426,7 +427,7 @@ BOOL LLManipTranslate::handleHover(S32 x, S32 y, MASK mask)  			gAgent.cameraOrbitAround(rotate_angle);  			rotated = TRUE;  		} -		else if (x > gViewerWindow->getWorldViewWidth() - ROTATE_H_MARGIN) +		else if (x > world_rect.getWidth() - ROTATE_H_MARGIN)  		{  			gAgent.cameraOrbitAround(-rotate_angle);  			rotated = TRUE; @@ -960,8 +961,9 @@ void LLManipTranslate::highlightManipulators(S32 x, S32 y)  	LLVector2 manip_start_2d;  	LLVector2 manip_end_2d;  	LLVector2 manip_dir; -	F32 half_width = gViewerWindow->getWorldViewWidth() / 2.f; -	F32 half_height = gViewerWindow->getWorldViewHeight() / 2.f; +	LLRect world_view_rect = gViewerWindow->getVirtualWorldViewRect(); +	F32 half_width = (F32)world_view_rect.getWidth() / 2.f; +	F32 half_height = (F32)world_view_rect.getHeight() / 2.f;  	LLVector2 mousePos((F32)x - half_width, (F32)y - half_height);  	LLVector2 mouse_delta; diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index c2906b1718..b7f2b91c52 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -212,8 +212,9 @@ public:  	// Window in raw pixels as seen on screen.  	const LLRect&	getWindowRect()		const	{ return mWindowRect; }; -	// portion of window that shows 3d world +	// portion of window that shows 3d world, in raw unscaled pixels  	const LLRect&	getWorldViewRect()		const	{ return mWorldViewRect; }; +	// Use this rect for most UI computations, it accounts for UI size scaling  	LLRect			getVirtualWorldViewRect()	const;  	S32 			getWorldViewHeight() const;  	S32 			getWorldViewWidth() const; | 
