summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdoc/contributions.txt1
-rw-r--r--indra/newview/app_settings/settings.xml13
-rw-r--r--indra/newview/llviewerwindow.cpp10
3 files changed, 24 insertions, 0 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt
index 24909e6c40..a73bd10295 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -222,6 +222,7 @@ Ansariel Hiller
MAINT-8085
MAINT-8723
SL-10385
+ SL-10891
Aralara Rajal
Arare Chantilly
CHUIBUG-191
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 09d7845567..916781e85b 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -16310,6 +16310,19 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>ResetUIScaleOnFirstRun</key>
+ <map>
+ <key>Comment</key>
+ <string>Resets the UI scale factor on first run due to changed display scaling behavior</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ <key>Backup</key>
+ <integer>0</integer>
+ </map>
</map>
</llsd>
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index cc10d08f3a..bc4a78e143 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1763,6 +1763,16 @@ LLViewerWindow::LLViewerWindow(const Params& p)
LLCoordScreen scr;
mWindow->getSize(&scr);
+ // Reset UI scale factor on first run if OS's display scaling is not 100%
+ if (gSavedSettings.getBOOL("FSResetUIScaleOnFirstRun"))
+ {
+ if (mWindow->getSystemUISize() != 1.f)
+ {
+ gSavedSettings.setF32("UIScaleFactor", 1.f);
+ }
+ gSavedSettings.setBOOL("ResetUIScaleOnFirstRun", FALSE);
+ }
+
// Get the real window rect the window was created with (since there are various OS-dependent reasons why
// the size of a window or fullscreen context may have been adjusted slightly...)
F32 ui_scale_factor = llclamp(gSavedSettings.getF32("UIScaleFactor"), MIN_UI_SCALE, MAX_UI_SCALE) * mWindow->getSystemUISize();