]> source.dussan.org Git - tigervnc.git/commitdiff
Make the window actually occupy the full screen in full-screen mode (without this...
authorBrian Hinz <bphinz@users.sourceforge.net>
Sun, 26 Aug 2012 21:17:00 +0000 (21:17 +0000)
committerBrian Hinz <bphinz@users.sourceforge.net>
Sun, 26 Aug 2012 21:17:00 +0000 (21:17 +0000)
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4970 3789f03b-4d11-0410-bbf8-ca57d06f2519

java/com/tigervnc/vncviewer/CConn.java

index cd547aba3fe51412de698dd49249ff6f2a5cbf8c..abe10dd53818fc840a3cac61e6c4afcfd4f12a8c 100644 (file)
@@ -522,9 +522,14 @@ public class CConn extends CConnection
     desktop.setScaledSize();
     int w = desktop.scaledWidth;
     int h = desktop.scaledHeight;
+    GraphicsEnvironment ge =
+      GraphicsEnvironment.getLocalGraphicsEnvironment();
+    GraphicsDevice gd = ge.getDefaultScreenDevice();
     if (fullScreen) {
       viewport.setExtendedState(JFrame.MAXIMIZED_BOTH);
       viewport.setGeometry(0, 0, dpySize.width, dpySize.height, false);
+      if (gd.isFullScreenSupported())
+        gd.setFullScreenWindow(viewport);
     } else {
       int wmDecorationWidth = viewport.getInsets().left + viewport.getInsets().right;
       int wmDecorationHeight = viewport.getInsets().top + viewport.getInsets().bottom;
@@ -549,6 +554,8 @@ public class CConn extends CConnection
         viewport.setExtendedState(JFrame.NORMAL);
         viewport.setGeometry(x, y, w, h, pack);
       }
+      if (gd.isFullScreenSupported())
+        gd.setFullScreenWindow(null);
     }
   }
 
@@ -958,13 +965,13 @@ public class CConn extends CConnection
     if (scaleString.equalsIgnoreCase("Auto")) {
       if (!oldScaleFactor.equals(scaleString)) {
       viewer.scalingFactor.setParam("Auto");
-        if (desktop != null)
+        if (desktop != null && !(options.fullScreen.isSelected() && fullScreen))
           reconfigureViewport();
       }
     } else if(scaleString.equalsIgnoreCase("Fixed Aspect Ratio")) {
       if (!oldScaleFactor.equalsIgnoreCase("FixedRatio")) {
         viewer.scalingFactor.setParam("FixedRatio");
-        if (desktop != null)
+        if (desktop != null && !(options.fullScreen.isSelected() && fullScreen))
           reconfigureViewport();
       }
     } else { 
@@ -973,7 +980,8 @@ public class CConn extends CConnection
         viewer.scalingFactor.setParam(scaleString);
         if ((desktop != null) && (!oldScaleFactor.equalsIgnoreCase("Auto") ||
             !oldScaleFactor.equalsIgnoreCase("FixedRatio"))) {
-          reconfigureViewport();
+          if (!(options.fullScreen.isSelected() && fullScreen))
+            reconfigureViewport();
         }
       }
     }
@@ -1104,12 +1112,15 @@ public class CConn extends CConnection
       CSecurityTLS.x509ca.setParam(options.ca.getText());
       CSecurityTLS.x509crl.setParam(options.crl.getText());
     }
+    if (options.fullScreen.isSelected() ^ fullScreen)
+      toggleFullScreen();
   }
 
   public void toggleFullScreen() {
     fullScreen = !fullScreen;
     if (!fullScreen) menu.fullScreen.setSelected(false);
-    recreateViewport();
+    if (viewport != null)
+      recreateViewport();
   }
 
   // writeClientCutText() is called from the clipboard dialog