Mercurial > hg > Members > riono > TreeVNC_ja_comment
diff src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java @ 410:da1d6d6b4981
Enable retina scale to fit screen
author | innparusu |
---|---|
date | Thu, 19 Nov 2015 15:19:29 +0900 |
parents | cdab1354e227 |
children | 4a925e55afd6 |
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Thu Nov 19 14:43:30 2015 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Thu Nov 19 15:19:29 2015 +0900 @@ -79,6 +79,7 @@ private byte[] originalInitData = null; private boolean childrenMulticast = true; + private int retinaScale; public TreeRFBProto(boolean isTreeManager, ViewerInterface viewer) { rThread = new RequestScreenThread(this); @@ -216,8 +217,9 @@ int frameSizeHeight = buf.getInt(); int port = buf.getInt(); int shareScreenNumber = buf.getInt(); + int scale = buf.getInt(); System.out.println("Root server change request :" + newHostName + " : " + port); - changeVNCServer(viewer, newHostName, port, frameSizeWidth, frameSizeHeight, shareScreenNumber, id, is, os); + changeVNCServer(viewer, newHostName, port, frameSizeWidth, frameSizeHeight, shareScreenNumber, scale, id, is, os); } else { continue; } @@ -795,14 +797,15 @@ * @param is * @param os */ - public void changeVNCServer(ViewerInterface vncProxyService, String hostName, int port, int width, int height, int shareScreenNumber, short newVNCServerId, Reader is, Writer os) + public void changeVNCServer(ViewerInterface vncProxyService, String hostName, int port, int width, int height, int shareScreenNumber, int scale, short newVNCServerId, Reader is, Writer os) throws IOException { this.frameSizeWidth = width; this.frameSizeHeight = height; this.shareScreenNumber = shareScreenNumber; - singleWidth = frameSizeWidth; - singleHeight = frameSizeHeight; + this.singleWidth = frameSizeWidth; + this.singleHeight = frameSizeHeight; + this.retinaScale = scale; if (newVNCServerId == -1) { // change to the tree vnc root on other network. vncProxyService.changeToDirectConnectedServer(hostName, is, os); @@ -910,6 +913,12 @@ return shareScreenNumber; } + + public int getRetinaScale() { + return retinaScale; + } + + public boolean hasParent() { return id != -1; } @@ -925,7 +934,8 @@ */ public void exchangeDirectConnectedServer(Reader previousReader, Writer previousWriter) { String adr = viewer.getRfb().getMyAddress(); - ScreenChangeRequest scr = new ScreenChangeRequest(adr, ConnectionParams.DEFAULT_VNC_ROOT, (short) -1, singleWidth, singleHeight, shareScreenNumber); + int scale = viewer.getRfb().getRetinaScale(); + ScreenChangeRequest scr = new ScreenChangeRequest(adr, ConnectionParams.DEFAULT_VNC_ROOT, (short) -1, singleWidth, singleHeight, shareScreenNumber, scale); try { scr.send(previousWriter); } catch (TransportException e) {