comparison 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
comparison
equal deleted inserted replaced
440:eaf6dbcb42dc 441:cee43ceac9b3
292 boolean visible = true; 292 boolean visible = true;
293 293
294 if (rect.getEncodingType() == EncodingType.INIT_DATA) { 294 if (rect.getEncodingType() == EncodingType.INIT_DATA) {
295 // VNCServer is changed, initiarize new screen. 295 // VNCServer is changed, initiarize new screen.
296 int length = reader.readInt32(); 296 int length = reader.readInt32();
297 byte[] initData = new byte[length]; 297 short id = reader.readInt16();
298 byte[] initData = new byte[length-2];
298 reader.read(initData); 299 reader.read(initData);
299 String name = new String(initData, 24, length - 24, "UTF-8"); 300 String name = new String(initData, 24, length - 24, "UTF-8");
300 context.setRemoteDesktopName(name); 301 context.setRemoteDesktopName(name);
301 context.setInitData(initData); 302 context.setInitData(initData);
302 context.setFbWidth(rect.width); 303 context.setFbWidth(rect.width);
303 context.setFbHeight(rect.height); 304 context.setFbHeight(rect.height);
305 context.setX(rect.x);
306 context.setY(rect.y);
304 repaintController.updateRemoteDesktopName(context); 307 repaintController.updateRemoteDesktopName(context);
305 reader.reset(); 308 reader.reset();
306 // All children multicastqueue should be discarded here. 309 // All children multicastqueue should be discarded here.
307 // rfb.clearChildrenTransmission(); 310 // rfb.clearChildrenTransmission();
308 rfb.readSendData(length + 20, reader, null, rect); // size of UpdateRectangleMessage with initData. 311 rfb.readSendData(length + 20, reader, null, rect); // size of UpdateRectangleMessage with initData.
309 short id = (short) rect.x;
310 visible = (id != rfb.getId()); 312 visible = (id != rfb.getId());
311 } 313 }
312 synchronized (renderer.getLock()) { 314 synchronized (renderer.getLock()) {
313 if (!(rfb.getCuiVersion())) { 315 if (!(rfb.getCuiVersion())) {
314 renderer = repaintController.createRenderer(reader, rect.width, rect.height, context.getPixelFormat()); 316 renderer = repaintController.createRenderer(reader, rect.width, rect.height, context.getPixelFormat());
319 } 321 }
320 if (rfb.hasViewer()){ 322 if (rfb.hasViewer()){
321 rfb.getViewer().setFitScreen(); 323 rfb.getViewer().setFitScreen();
322 } 324 }
323 if (rfb.isTreeManager()) { 325 if (rfb.isTreeManager()) {
324 context.sendMessage(new FramebufferUpdateRequestMessage(0, 0, rect.width, rect.height, false)); 326 context.sendMessage(new FramebufferUpdateRequestMessage(rect.x, rect.y, rect.width, rect.height, false));
325 } 327 }
326 328
327 } else if (rect.getEncodingType() == EncodingType.CHECK_DELAY) { 329 } else if (rect.getEncodingType() == EncodingType.CHECK_DELAY) {
328 int checkDelaySize = 24; 330 int checkDelaySize = 24;
329 int port = rfb.acceptPort; 331 int port = rfb.acceptPort;