changeset 187:b62a16548800

minor fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 24 Jun 2014 09:35:45 +0900
parents f76ee760c2d2
children f176bffcdc4a
files src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java src/viewer_swing/java/com/glavsoft/viewer/swing/SwingRfbConnectionWorker.java
diffstat 2 files changed, 16 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java	Tue Jun 24 00:48:26 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java	Tue Jun 24 09:35:45 2014 +0900
@@ -48,7 +48,7 @@
     private Inflater inflater = new Inflater();
     private Deflater deflater = new Deflater();
     ViewerInterface viewer;
-	private short id;
+	private short id;  // my tree node id ( = 0 in root )
     private boolean leader;
     public TreeManagement treeManager;
     private TreeVncCommandChannelListener acceptThread;
@@ -57,6 +57,7 @@
     private CreateConnectionParam cp;
     private boolean hasViewer = false;
     private boolean reconnecting;
+    private short reconnectingId;  // Change Server Request to id's node VNC server
 
 
 	public MyRfbProto() {
@@ -347,11 +348,12 @@
 		
 	}
 
-	public void setReadyReconnect(boolean ready) {
+	public synchronized void setReadyReconnect(boolean ready) {
 	    if (reconnecting) {
-	        sendDesktopSizeChange(id);
+	        sendDesktopSizeChange(reconnectingId);
 	        reconnecting = false;
-	    } else {
+	    } 
+	    if (reconnectingId!=0) {
 	        readyReconnect = ready;
 	        if (ready) {
 	            notifyAll();
@@ -360,9 +362,11 @@
 	}	
 
 	public synchronized void waitForReady() throws InterruptedException {
-		while (!readyReconnect) {
-			wait();
-		}
+	    if (reconnectingId!=0) {
+	        while (!readyReconnect) {
+	            wait();
+	        }
+	    }
 	}
 
 
@@ -620,8 +624,11 @@
     	// stop reader stop
         stopReceiverTask();
     	vncProxyService.inhelitClients(vncProxyService, hostName);
+        // after connecting VNC server, rfb send SEND_INIT_DATA command and wakes me up if necessary 
     	reconnecting = true;
-    	// after connecting VNC server, rfb send SEND_INIT_DATA command 
+    	if (reconnectingId!=0) {
+    	    waitForReady();
+    	}
     }
 
     /**
--- a/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingRfbConnectionWorker.java	Tue Jun 24 00:48:26 2014 +0900
+++ b/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingRfbConnectionWorker.java	Tue Jun 24 09:35:45 2014 +0900
@@ -120,8 +120,7 @@
             if(!myRfb.getCuiVersion())
             	viewerWindow = viewerWindowFactory.createViewerWindow(workingProtocol, rfbSettings, uiSettings, connectionString, presenter);
             myRfb.setProtocolContext(workingProtocol);
-            IRepaintController s = viewerWindow==null? new NullRepaintController() : viewerWindow.getSurface();
-            workingProtocol.startNormalHandling(this, s, clipboardController, myRfb);
+            workingProtocol.startNormalHandling(this,viewerWindow.getSurface(), clipboardController, myRfb);
             presenter.showMessage("Started");
             if (myRfb.hasViewer())
                 viewerWindow.setVisible(true);