changeset 452:e94489c9a0bb

fitScreen correctly worked on multi screen
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 21 Jun 2016 11:24:04 +0900
parents 65ffb64cfb51
children d0ca1be5c47c
files src/main/java/com/glavsoft/rfb/protocol/Protocol.java src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java src/viewer_swing/java/com/glavsoft/viewer/UiSettings.java src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java
diffstat 5 files changed, 8 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- 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
--- 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);
--- 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
--- 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;
     }
 }
--- 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);