From d39531edfe58343cefc29ab495462f1005edf2c5 Mon Sep 17 00:00:00 2001 From: Brian Hinz Date: Wed, 23 Jan 2013 22:46:53 +0000 Subject: Fixes a number of issues related to fullscreen mode. When switching out of fullscreen mode via the options dialog, setFullScreenWindow was being applied to the old reference, causing the whole screen to be blanked and unresponsive. The checkmark in the F8 menu could sometimes get out of sync with the state of the option. Cursor wasn't always being re-scaled when scale factor was changed. It seems that setCursor can still sometimes be passed a null pointer for the hotspot, so add back in a check that was removed in r5025 git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5034 3789f03b-4d11-0410-bbf8-ca57d06f2519 --- java/com/tigervnc/vncviewer/CConn.java | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) (limited to 'java/com/tigervnc/vncviewer/CConn.java') diff --git a/java/com/tigervnc/vncviewer/CConn.java b/java/com/tigervnc/vncviewer/CConn.java index 63db1ab4..fd07b27d 100644 --- a/java/com/tigervnc/vncviewer/CConn.java +++ b/java/com/tigervnc/vncviewer/CConn.java @@ -995,28 +995,18 @@ public class CConn extends CConnection String scaleString = options.scalingFactor.getSelectedItem().toString(); String oldScaleFactor = viewer.scalingFactor.getValue(); - if (scaleString.equalsIgnoreCase("Auto")) { - if (!oldScaleFactor.equals(scaleString)) { - viewer.scalingFactor.setParam("Auto"); - 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 && !(options.fullScreen.isSelected() && fullScreen)) - reconfigureViewport(); - } - } else { + if (scaleString.equalsIgnoreCase("Fixed Aspect Ratio")) { + scaleString = new String("FixedRatio"); + } else if (scaleString.equalsIgnoreCase("Auto")) { + scaleString = new String("Auto"); + } else { scaleString=scaleString.substring(0, scaleString.length()-1); - if (!oldScaleFactor.equals(scaleString)) { - viewer.scalingFactor.setParam(scaleString); - if ((desktop != null) && (!oldScaleFactor.equalsIgnoreCase("Auto") || - !oldScaleFactor.equalsIgnoreCase("FixedRatio"))) { - if (!(options.fullScreen.isSelected() && fullScreen)) - reconfigureViewport(); - } - } + } + if (oldScaleFactor != scaleString) { + viewer.scalingFactor.setParam(scaleString); + if ((options.fullScreen.isSelected() == fullScreen) && + (desktop != null)) + recreateViewport(); } clipboardDialog.setSendingEnabled(viewer.sendClipboard.getValue()); @@ -1148,7 +1138,7 @@ public class CConn extends CConnection public void toggleFullScreen() { fullScreen = !fullScreen; - if (!fullScreen) menu.fullScreen.setSelected(false); + menu.fullScreen.setSelected(fullScreen); if (viewport != null) recreateViewport(); } -- cgit v1.2.3