# HG changeset patch # User Shinji KONO # Date 1466475844 -32400 # Node ID e94489c9a0bb5e465b0a3a80cb2a915187a5eaa6 # Parent 65ffb64cfb51f8b691624f2de7cea859f9e9c29d fitScreen correctly worked on multi screen diff -r 65ffb64cfb51 -r e94489c9a0bb src/main/java/com/glavsoft/rfb/protocol/Protocol.java --- a/src/main/java/com/glavsoft/rfb/protocol/Protocol.java Mon Jun 20 12:04:13 2016 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/Protocol.java Tue Jun 21 11:24:04 2016 +0900 @@ -124,7 +124,6 @@ @Override public void setFbWidth(int fbWidth) { this.fbWidth = fbWidth; - if (rfb != null) rfb.setWidth(fbWidth); } @Override @@ -145,7 +144,6 @@ @Override public void setFbHeight(int fbHeight) { this.fbHeight = fbHeight; - if (rfb != null) rfb.setHeight(fbHeight); } @Override diff -r 65ffb64cfb51 -r e94489c9a0bb src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java --- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Mon Jun 20 12:04:13 2016 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Tue Jun 21 11:24:04 2016 +0900 @@ -97,6 +97,7 @@ rfb.setSingleDisplaySize(context.getFbWidth(),context.getFbHeight()); } renderer = repaintController.createRenderer(reader, context.getFbWidth(), context.getFbHeight(), context.getPixelFormat()); + System.out.println("ReceiverTask: FB x="+context.getFbWidth() + " y="+context.getFbHeight()); } if(rfb.isTreeManager()) { fullscreenFbUpdateIncrementalRequest = new FramebufferUpdateRequestMessage(rfb.getX(), rfb.getY(), rfb.getSingleWidth(), rfb.getSingleHeight(), false); diff -r 65ffb64cfb51 -r e94489c9a0bb src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Mon Jun 20 12:04:13 2016 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Tue Jun 21 11:24:04 2016 +0900 @@ -64,8 +64,6 @@ public boolean checkDelay = false; public boolean addSerialNum = false; public boolean fixingSize = false; - public int frameSizeWidth; // contains all screens - public int frameSizeHeight; // aquired from VNC Server public int fixingSizeWidth; public int fixingSizeHeight; private int singleWidth = 0; // only one screen @@ -921,8 +919,6 @@ connectionPresenter.viewer.getConnectionPresenter().addModel("ConnectionParamsModel", connectionPresenter.getConnectionParams()); this.x = connectionPresenter.getX(); this.y = connectionPresenter.getY(); - this.frameSizeWidth = connectionPresenter.getFrameSizeWidth(); - this.frameSizeHeight = connectionPresenter.getFrameSizeHeight(); this.retinaScale = connectionPresenter.getRetinaScale(); if (previousContext != null && isTreeManager() && hasParent()) { Reader previousReader = previousContext.getReader(); @@ -951,11 +947,4 @@ this.y = y; } - public void setWidth(int width) { - this.frameSizeWidth = width; - } - - public void setHeight(int height) { - this.frameSizeHeight = height; - } } \ No newline at end of file diff -r 65ffb64cfb51 -r e94489c9a0bb src/viewer_swing/java/com/glavsoft/viewer/UiSettings.java --- a/src/viewer_swing/java/com/glavsoft/viewer/UiSettings.java Mon Jun 20 12:04:13 2016 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/UiSettings.java Tue Jun 21 11:24:04 2016 +0900 @@ -215,6 +215,6 @@ } setScalePercent(scaleFactor); fireListeners(); - return scaleFactor; + return scaleFactor/100.0; } } diff -r 65ffb64cfb51 -r e94489c9a0bb src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java --- a/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java Mon Jun 20 12:04:13 2016 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java Tue Jun 21 11:24:04 2016 +0900 @@ -998,17 +998,17 @@ int thatRetinaScale = presenter.getRetinaScale(); final int thatScreenWidth = viewer.getRfb().getSingleWidth(); final int thatScreenHeight = viewer.getRfb().getSingleHeight(); - showScreenInfo("that", 0, thatScreenX, thatScreenY, thatScreenWidth, thatScreenHeight, thatRetinaScale); - System.out.println("that FB x:" + presenter.getFrameSizeWidth() + " y:" + presenter.getFrameSizeHeight()); + // showScreenInfo("that", 0, thatScreenX, thatScreenY, thatScreenWidth, thatScreenHeight, thatRetinaScale); + // System.out.println("that FB x:" + viewer.getRfb().getContext().getFbWidth() + " y:" + viewer.getRfb().getContext().getFbHeight()); frame.setSize(thisScreenWidth, thisScreenHeight); double scale = uiSettings.fitScreen(thisScreenWidth, thisScreenHeight, thatScreenWidth, thatScreenHeight); // final Rectangle visible = new Rectangle((int)(thatScreenX*scale),(int)(thatScreenY*scale),(int)(thatScreenWidth*scale)-1,(int)(thatScreenHeight*scale)-1); - showScreenInfo("this", thisScreenNumber, 0, 0,thisScreenWidth, thisScreenHeight, thisRetinaScale); - System.out.println("this FB x:" + viewer.getConnectionPresenter().getFrameSizeWidth() + " y:" + viewer.getConnectionPresenter().getFrameSizeHeight()); - System.out.println("thisScrollScale: " + scale + " ymax:"+scroller.getVerticalScrollBar().getMaximum()); + // showScreenInfo("this", thisScreenNumber, 0, 0,thisScreenWidth, thisScreenHeight, thisRetinaScale); final int scrollx = (int)(thatScreenX * scale); - final int scrolly = (int)((presenter.getFrameSizeHeight()-thatScreenY) * scale) ; + final int scrolly = (int)(thatScreenY * scale); + // System.out.println("thisScrollScale: " + scale + " xmax:"+scroller.getHorizontalScrollBar().getMaximum() + " scrollx:"+scrollx); + // System.out.println("thisScrollScale: " + scale + " ymax:"+scroller.getVerticalScrollBar().getMaximum() + " scrolly:"+scrolly); SwingUtilities.invokeLater(new Runnable() { public void run() { scroller.getHorizontalScrollBar().setValue(scrollx);