Prevent viewer from reconfiguring viewport on pixel format changes.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4881 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/com/tigervnc/rfb/PixelBuffer.java b/java/com/tigervnc/rfb/PixelBuffer.java
index 4371355..cca8286 100644
--- a/java/com/tigervnc/rfb/PixelBuffer.java
+++ b/java/com/tigervnc/rfb/PixelBuffer.java
@@ -45,7 +45,7 @@
int gmask = pf.greenMax << pf.greenShift;
int bmask = pf.blueMax << pf.blueShift;
cm = new DirectColorModel(8, rmask, gmask, bmask);
- if (pf.depth == 8 && !pf.trueColour)
+ if (!pf.trueColour)
cm = new IndexColorModel(8, 256, new byte[256], new byte[256], new byte[256]);
break;
case 16:
diff --git a/java/com/tigervnc/vncviewer/CConn.java b/java/com/tigervnc/vncviewer/CConn.java
index 0f95c69..a87ddae 100644
--- a/java/com/tigervnc/vncviewer/CConn.java
+++ b/java/com/tigervnc/vncviewer/CConn.java
@@ -1044,21 +1044,27 @@
viewer.acceptBell.setParam(options.acceptBell.isSelected());
String scaleString =
options.scalingFactor.getSelectedItem().toString();
+ String oldScaleFactor = viewer.scalingFactor.getValue();
if (scaleString.equals("Auto")) {
+ if (!oldScaleFactor.equals(scaleString)) {
viewer.scalingFactor.setParam("Auto");
- if (desktop != null)
- reconfigureViewport();
+ if (desktop != null)
+ reconfigureViewport();
+ }
} else if(scaleString.equals("Fixed Aspect Ratio")) {
- viewer.scalingFactor.setParam("FixedRatio");
- if (desktop != null)
- reconfigureViewport();
+ if (!oldScaleFactor.equals("FixedRatio")) {
+ viewer.scalingFactor.setParam("FixedRatio");
+ if (desktop != null)
+ reconfigureViewport();
+ }
} else {
scaleString=scaleString.substring(0, scaleString.length()-1);
- String oldScaleFactor = viewer.scalingFactor.getValue();
- viewer.scalingFactor.setParam(scaleString);
- if ((desktop != null) && (!oldScaleFactor.equals("Auto") ||
- !oldScaleFactor.equals("FixedRatio"))) {
- reconfigureViewport();
+ if (!oldScaleFactor.equals(scaleString)) {
+ viewer.scalingFactor.setParam(scaleString);
+ if ((desktop != null) && (!oldScaleFactor.equals("Auto") ||
+ !oldScaleFactor.equals("FixedRatio"))) {
+ reconfigureViewport();
+ }
}
}