[Developement] Added "auto scaling" feature to Applet.
[BugFix] NullPointerException when changing option before canvas created.
[BugFix] Wrong default value in "Auto Scroll" combo box (class OptionsFrame).
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3287 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/vncviewer/OptionsFrame.java b/java/src/com/tightvnc/vncviewer/OptionsFrame.java
index c8d1b04..5034af6 100644
--- a/java/src/com/tightvnc/vncviewer/OptionsFrame.java
+++ b/java/src/com/tightvnc/vncviewer/OptionsFrame.java
@@ -183,8 +183,8 @@
String s = viewer.readParameter("Scaling Factor", false);
if (s == null) s = "100%";
setScalingFactor(s);
- if (!s.equalsIgnoreCase("Auto")) {
- choices[scalingFactorIndex].select(s.trim() + '%');
+ if (autoScale) {
+ choices[scalingFactorIndex].select("Auto");
} else {
choices[scalingFactorIndex].select(s);
}
@@ -447,7 +447,8 @@
} else if (source == choices[scalingFactorIndex]){
// Tell VNC canvas that scaling factor has changed
setScalingFactor(choices[scalingFactorIndex].getSelectedItem());
- viewer.vc.setScalingFactor(scalingFactor);
+ if (viewer.vc != null)
+ viewer.vc.setScalingFactor(scalingFactor);
}
}
diff --git a/java/src/com/tightvnc/vncviewer/VncCanvas.java b/java/src/com/tightvnc/vncviewer/VncCanvas.java
index 7a8c76a..a457469 100644
--- a/java/src/com/tightvnc/vncviewer/VncCanvas.java
+++ b/java/src/com/tightvnc/vncviewer/VncCanvas.java
@@ -263,8 +263,11 @@
int fbWidth = rfb.framebufferWidth;
int fbHeight = rfb.framebufferHeight;
- // Calculate scaling factor for auto scaling.
- if (maxWidth > 0 && maxHeight > 0) {
+ if (viewer.options.autoScale) {
+ if (!(maxWidth > 0 && maxHeight > 0)) {
+ maxWidth = fbWidth;
+ maxHeight = fbHeight;
+ }
int f1 = maxWidth * 100 / fbWidth;
int f2 = maxHeight * 100 / fbHeight;
scalingFactor = Math.min(f1, f2);