comparison src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java @ 423:ffe01c959cdd

Fix LostChild for root node
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Fri, 22 Jan 2016 07:51:57 +0900
parents 752788fdae03
children 15836504f1a2
comparison
equal deleted inserted replaced
422:752788fdae03 423:ffe01c959cdd
157 logger.severe("Unsupported server message. Id = " + messageId); 157 logger.severe("Unsupported server message. Id = " + messageId);
158 } 158 }
159 } catch (TransportException e) { 159 } catch (TransportException e) {
160 if (e.getCause().getClass().getSimpleName().equals("SocketTimeoutException")) { 160 if (e.getCause().getClass().getSimpleName().equals("SocketTimeoutException")) {
161 if (rfb.isTreeManager()) { 161 if (rfb.isTreeManager()) {
162 context.sendMessage(new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.frameSizeWidth * rfb.getRetinaScale(), rfb.frameSizeHeight * rfb.getRetinaScale(), false)); 162 sendFrameBufferUpdateRequest();
163 } 163 }
164 continue; 164 continue;
165 } 165 }
166 logger.severe("Close session : ReceiverTask : " + e.getMessage()); 166 logger.severe("Close session : ReceiverTask : " + e.getMessage());
167 if(!rfb.isTreeManager() && !(rfb.getTerminationType())) { 167 if(!rfb.isTreeManager() && !(rfb.getTerminationType())) {
354 e.printStackTrace(); 354 e.printStackTrace();
355 reader.close(); 355 reader.close();
356 } 356 }
357 357
358 if (rfb.isTreeManager()) { 358 if (rfb.isTreeManager()) {
359 synchronized (this) { 359 sendFrameBufferUpdateRequest();
360 if (needSendPixelFormat) { 360 }
361 needSendPixelFormat = false; 361 }
362 context.setPixelFormat(pixelFormat); 362
363 context.sendMessage(new SetPixelFormatMessage(pixelFormat)); 363 synchronized private void sendFrameBufferUpdateRequest() {
364 logger.fine("sent: " + pixelFormat); 364 if (needSendPixelFormat) {
365 context.sendRefreshMessage(); 365 needSendPixelFormat = false;
366 logger.fine("sent: nonincremental fb update"); 366 context.setPixelFormat(pixelFormat);
367 } else { 367 context.sendMessage(new SetPixelFormatMessage(pixelFormat));
368 context.sendMessage(new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.frameSizeWidth * rfb.getRetinaScale(), rfb.frameSizeHeight * rfb.getRetinaScale(), false)); 368 logger.fine("sent: " + pixelFormat);
369 } 369 context.sendRefreshMessage();
370 } 370 logger.fine("sent: nonincremental fb update");
371 } 371 } else {
372 } 372 context.sendMessage(new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.frameSizeWidth * rfb.getRetinaScale(), rfb.frameSizeHeight * rfb.getRetinaScale(), false));
373 }
374 }
375
373 376
374 private void sendCheckDelayReply(long time, int port, String address, int dataLen) throws UnsupportedEncodingException { 377 private void sendCheckDelayReply(long time, int port, String address, int dataLen) throws UnsupportedEncodingException {
375 context.sendMessage(new CheckDelayReply(time, port, address, dataLen)); 378 context.sendMessage(new CheckDelayReply(time, port, address, dataLen));
376 } 379 }
377 380