diff src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java @ 167:1d3fa20b86bb

update remoteDesktopName.
author oc
date Thu, 19 Jun 2014 18:51:06 +0900
parents 26bc52699cf3
children 2ade64eba46f
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Thu Jun 19 17:19:59 2014 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Thu Jun 19 18:51:06 2014 +0900
@@ -34,15 +34,18 @@
 import com.glavsoft.rfb.client.SetPixelFormatMessage;
 import com.glavsoft.rfb.encoding.EncodingType;
 import com.glavsoft.rfb.encoding.PixelFormat;
+import com.glavsoft.rfb.encoding.ServerInitMessage;
 import com.glavsoft.rfb.encoding.decoder.Decoder;
 import com.glavsoft.rfb.encoding.decoder.DecodersContainer;
 import com.glavsoft.rfb.encoding.decoder.FramebufferUpdateRectangle;
 import com.glavsoft.rfb.encoding.decoder.RichCursorDecoder;
 import com.glavsoft.rfb.encoding.decoder.ZRLEESender;
+import com.glavsoft.rfb.protocol.state.InitState;
 import com.glavsoft.transport.Reader;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
 import java.nio.ByteBuffer;
 import java.util.logging.Logger;
 
@@ -219,7 +222,7 @@
 		clipboardController.updateSystemClipboard(reader.readBytes(length));
 	}
 
-	public void framebufferUpdateMessage() throws CommonException {
+	public void framebufferUpdateMessage() throws CommonException, UnsupportedEncodingException {
 		reader.readByte(); // padding
 		int numberOfRectangles = reader.readUInt16();
 		while (numberOfRectangles-- > 0) {
@@ -247,7 +250,11 @@
                 	int length = reader.readInt32();
                 	byte[] initData = new byte[length];
                 	reader.read(initData);
+                	String name = new String(initData, 24, length - 24, "US-ASCII");
+                	rfb.getContext().setRemoteDesktopName(name);
+
                 	rfb.getContext().setInitData(initData);
+                	repaintController.updateRemoteDesktopName(rfb.getContext());
                 	reader.reset();
                 	rfb.readSendData(length + 20, reader); // size of UpdateRectangleMessage with initData.
                 }