Mercurial > hg > Members > riono > TreeVNC_ja_comment
diff src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java @ 441:cee43ceac9b3
send thatscreen position INIT_DATA
author | one |
---|---|
date | Thu, 16 Jun 2016 21:08:19 +0900 |
parents | 3a97a014d7ee |
children | 614057b86122 |
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Thu Jun 16 20:35:44 2016 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Thu Jun 16 21:08:19 2016 +0900 @@ -294,19 +294,21 @@ if (rect.getEncodingType() == EncodingType.INIT_DATA) { // VNCServer is changed, initiarize new screen. int length = reader.readInt32(); - byte[] initData = new byte[length]; + short id = reader.readInt16(); + byte[] initData = new byte[length-2]; reader.read(initData); String name = new String(initData, 24, length - 24, "UTF-8"); context.setRemoteDesktopName(name); context.setInitData(initData); context.setFbWidth(rect.width); context.setFbHeight(rect.height); + context.setX(rect.x); + context.setY(rect.y); repaintController.updateRemoteDesktopName(context); reader.reset(); // All children multicastqueue should be discarded here. // rfb.clearChildrenTransmission(); rfb.readSendData(length + 20, reader, null, rect); // size of UpdateRectangleMessage with initData. - short id = (short) rect.x; visible = (id != rfb.getId()); } synchronized (renderer.getLock()) { @@ -321,7 +323,7 @@ rfb.getViewer().setFitScreen(); } if (rfb.isTreeManager()) { - context.sendMessage(new FramebufferUpdateRequestMessage(0, 0, rect.width, rect.height, false)); + context.sendMessage(new FramebufferUpdateRequestMessage(rect.x, rect.y, rect.width, rect.height, false)); } } else if (rect.getEncodingType() == EncodingType.CHECK_DELAY) {