From 95ecad54c6f037910a5a22f7ef30026cf628fe80 Mon Sep 17 00:00:00 2001
From: callum <none@none>
Date: Tue, 28 Sep 2010 16:52:56 -0700
Subject: EXP-112 Enable fullscreen mode (with mode switch, not resize to
 desktop) as per 1.x viewer.

---
 indra/newview/app_settings/cmd_line.xml |  8 ++++++++
 indra/newview/app_settings/settings.xml | 11 +++++++++++
 indra/newview/llappviewer.cpp           |  2 +-
 indra/newview/llviewerwindow.cpp        | 11 ++++++++++-
 4 files changed, 30 insertions(+), 2 deletions(-)

(limited to 'indra/newview')

diff --git a/indra/newview/app_settings/cmd_line.xml b/indra/newview/app_settings/cmd_line.xml
index 962c4e9d36..aa2f1c41d2 100644
--- a/indra/newview/app_settings/cmd_line.xml
+++ b/indra/newview/app_settings/cmd_line.xml
@@ -391,5 +391,13 @@
       <string>CrashOnStartup</string>
     </map>
 
+    <key>fullscreen</key>
+    <map>
+      <key>desc</key>
+      <string>Force full screen mode</string>
+      <key>map-to</key>
+      <string>WindowFullScreen</string>
+    </map>
+
   </map>
 </llsd>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index a83291b530..9c19d2c638 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -11684,6 +11684,17 @@
       <string>Boolean</string>
       <key>Value</key>
       <integer>1</integer>
+    </map> 
+    <key>WindowFullScreen</key>
+    <map>
+      <key>Comment</key>
+      <string>SL viewer window full screen</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>Boolean</string>
+      <key>Value</key>
+      <integer>0</integer>
     </map>
     <key>WindowHeight</key>
     <map>
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 02a8c3e674..956f67df86 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2386,7 +2386,7 @@ bool LLAppViewer::initWindow()
 		VIEWER_WINDOW_CLASSNAME,
 		gSavedSettings.getS32("WindowX"), gSavedSettings.getS32("WindowY"),
 		gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"),
-		FALSE, ignorePixelDepth);
+		gSavedSettings.getBOOL("WindowFullScreen"), ignorePixelDepth);
 
 	// Need to load feature table before cheking to start watchdog.
 	const S32 NEVER_SUBMIT_REPORT = 2;
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index fb43b51deb..ea32adf5b6 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1349,8 +1349,17 @@ LLViewerWindow::LLViewerWindow(
 	if (!LLAppViewer::instance()->restoreErrorTrap())
 	{
 		LL_WARNS("Window") << " Someone took over my signal/exception handler (post createWindow)!" << LL_ENDL;
-	}
+    }
+ 
+	LLCoordScreen scr;
+    mWindow->getSize(&scr);
 
+    if(fullscreen && ( scr.mX!=width || scr.mY!=height))
+    {
+		llwarns << "Fullscreen has forced us in to a different resolution now using "<<scr.mX<<" x "<<scr.mY<<llendl;
+		gSavedSettings.setS32("FullScreenWidth",scr.mX);
+		gSavedSettings.setS32("FullScreenHeight",scr.mY);
+    }
 
 	if (NULL == mWindow)
 	{
-- 
cgit v1.2.3