From 76b3efe01cdf96879c3e7880ee78cccafd36e917 Mon Sep 17 00:00:00 2001
From: Ansariel Hiller <ansarielhiller@yahoo.de>
Date: Sat, 19 Nov 2016 11:19:01 +0000
Subject: [PATCH] MAINT-6953 [Contribution] Error in DPI scaling calculation

---
 doc/contributions.txt            | 1 +
 indra/llwindow/llwindowwin32.cpp | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/doc/contributions.txt b/doc/contributions.txt
index c206132d180..af2166528ba 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -211,6 +211,7 @@ Ansariel Hiller
 	MAINT-6912
 	MAINT-6929
 	STORM-2141
+	MAINT-6953
 Aralara Rajal
 Arare Chantilly
 	CHUIBUG-191
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index 4086db8e524..062f9220066 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -2623,7 +2623,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
 		case WM_DPICHANGED:
 			{
 				LPRECT lprc_new_scale;
-				F32 new_scale = LOWORD(w_param) / USER_DEFAULT_SCREEN_DPI;
+				F32 new_scale = F32(LOWORD(w_param)) / F32(USER_DEFAULT_SCREEN_DPI);
 				lprc_new_scale = (LPRECT)l_param;
 				S32 new_width = lprc_new_scale->right - lprc_new_scale->left;
 				S32 new_height = lprc_new_scale->bottom - lprc_new_scale->top;
@@ -3982,7 +3982,7 @@ F32 LLWindowWin32::getSystemUISize()
 				hr = pGDFM(hMonitor, MDT_EFFECTIVE_DPI, &dpix, &dpiy);
 				if (hr == S_OK)
 				{
-					scale_value = dpix / USER_DEFAULT_SCREEN_DPI;
+					scale_value = F32(dpix) / F32(USER_DEFAULT_SCREEN_DPI);
 				}
 				else
 				{
@@ -4001,7 +4001,7 @@ F32 LLWindowWin32::getSystemUISize()
 	else
 	{
 		LL_WARNS() << "Could not load shcore.dll library (included by <ShellScalingAPI.h> from Win 8.1 SDK). Using legacy DPI awareness API of Win XP/7" << LL_ENDL;
-		scale_value = GetDeviceCaps(hdc, LOGPIXELSX) / USER_DEFAULT_SCREEN_DPI;
+		scale_value = F32(GetDeviceCaps(hdc, LOGPIXELSX)) / F32(USER_DEFAULT_SCREEN_DPI);
 	}
 
 	ReleaseDC(hWnd, hdc);
-- 
GitLab