# HG changeset patch # User Shinji KONO # Date 1401102196 -32400 # Node ID e2416a246c95fe0f096ece335a8fd39b70c0247e # Parent e4408fc5679ff1aaa8e0552a28e7d9fb6442169d noScreenChange flag on command line ( should be on panel also ) diff -r e4408fc5679f -r e2416a246c95 src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java Mon May 26 19:47:09 2014 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java Mon May 26 20:03:16 2014 +0900 @@ -44,14 +44,13 @@ private long counter = 0; // packet serial number private VncProxyService viewer = null; public ServerSocket servSock; - + private boolean permitChangeScreen = false; private static final int INFLATE_BUFSIZE = 1024 * 100; private Inflater inflater = new Inflater(); private Deflater deflater = new Deflater(); - public MyRfbProto() { rThread = new RequestScreenThread(this); } @@ -117,9 +116,7 @@ * send all incoming from clients to parent. */ final Runnable reader = new Runnable() { - - - public void run() { + public void run() { for (;;) { try { final byte b[] = new byte[4096]; @@ -170,9 +167,6 @@ } } - private boolean permitChangeScreen() { - return true; - } }; /** * send packets to a client @@ -243,6 +237,16 @@ } + + public boolean permitChangeScreen() { + return permitChangeScreen; + } + + + public void setPermitChangeScreen(boolean v) { + permitChangeScreen = v; + } + public void requestThreadNotify() { rThread.reStart(); } diff -r e4408fc5679f -r e2416a246c95 src/viewer_swing/java/com/glavsoft/viewer/TreeViewer.java --- a/src/viewer_swing/java/com/glavsoft/viewer/TreeViewer.java Mon May 26 19:47:09 2014 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/TreeViewer.java Mon May 26 20:03:16 2014 +0900 @@ -10,6 +10,7 @@ private int height; private String hostName = null; private boolean noConnection = false; + private boolean permitChangeScreen = true; public static void main(String[] args) { new TreeViewer().vncStart(args); @@ -21,6 +22,7 @@ VncProxyService vps = new VncProxyService(); vps.setNoConnection(noConnection); vps.proxyStart(args,width,height); + if (!permitChangeScreen ) vps.getRfb().setPermitChangeScreen(false); } ViewerImpl v; if (viewer) { @@ -57,7 +59,11 @@ } else if ("--version".equals(args[i])) { System.out.println("version :" + VncProxyService.ver()); System.exit(0); - } else if ("--retina".equals(args[i])) { + } else if ("-ns".equals(args[i])) { + permitChangeScreen = false; + } else if ("--noScreenChange".equals(args[i])) { + permitChangeScreen = false; + } else if ("--retina".equals(args[i])) { // retina display too large for TreeVNC. // restrict display size. width = 1280; @@ -73,7 +79,8 @@ } else { System.out.println("(default) TreeVNCClient\n" + "-v or -c: View shared screen.\n" - + "-p: Share my screen and behave as tree root.\n" + + "-p: (proxy) Share my screen and behave as tree root.\n" + + "-ns --noScreenChange Viewers cannot change screen to thiers (default permite screen change)" + "-d: Show shared screen and behave as tree root.\n" + "-r: Connect to fix to specified host and port.\n" + "--host hostname: Set host name.\n"