# HG changeset patch # User Nozomi # Date 1465386847 -32400 # Node ID 7eaa95ca7e45387599137b819649cde79d5aae4c # Parent 340b62546e0a781cca39be590ecb81231ae2defa trying to fix fitScreen diff -r 340b62546e0a -r 7eaa95ca7e45 .idea/compiler.xml --- a/.idea/compiler.xml Wed Feb 17 09:57:15 2016 +0900 +++ b/.idea/compiler.xml Wed Jun 08 20:54:07 2016 +0900 @@ -1,7 +1,6 @@ - \ No newline at end of file diff -r 340b62546e0a -r 7eaa95ca7e45 .idea/vcs.xml --- a/.idea/vcs.xml Wed Feb 17 09:57:15 2016 +0900 +++ b/.idea/vcs.xml Wed Jun 08 20:54:07 2016 +0900 @@ -2,6 +2,5 @@ - \ No newline at end of file diff -r 340b62546e0a -r 7eaa95ca7e45 .idea/workspace.xml --- a/.idea/workspace.xml Wed Feb 17 09:57:15 2016 +0900 +++ b/.idea/workspace.xml Wed Jun 08 20:54:07 2016 +0900 @@ -1,8 +1,16 @@ - - + + + + + + + + + + @@ -16,252 +24,110 @@ - - - - - - - - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - \ No newline at end of file diff -r 340b62546e0a -r 7eaa95ca7e45 Todo.txt --- a/Todo.txt Wed Feb 17 09:57:15 2016 +0900 +++ b/Todo.txt Wed Jun 08 20:54:07 2016 +0900 @@ -1,3 +1,11 @@ +Wed June 8 15:35 JST 2016 kono + + Multi screen でfitScreen buttonは左では動く + 右ではoriginがずれる + + fitScreenをclient側で自動的に実行する + multi screenのoriginを考慮してfitScreenする + Wed Jan 28 15:35 JST 2015 < 現状の問題点 > diff -r 340b62546e0a -r 7eaa95ca7e45 TreeVNC.iml --- a/TreeVNC.iml Wed Feb 17 09:57:15 2016 +0900 +++ b/TreeVNC.iml Wed Jun 08 20:54:07 2016 +0900 @@ -18,6 +18,14 @@ - + + + + + + + + + \ No newline at end of file diff -r 340b62546e0a -r 7eaa95ca7e45 src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java --- a/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java Wed Feb 17 09:57:15 2016 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java Wed Jun 08 20:54:07 2016 +0900 @@ -919,7 +919,7 @@ int singleWidth = (int) (rectangles.get(shareScreenNumber).getWidth()); int singleHeight = (int) (rectangles.get(shareScreenNumber).getHeight()); viewer.getRfb().setSingleDisplaySize(singleWidth, singleHeight); - int x = (int) (rectangles.get(shareScreenNumber).getX()); + int x = (int) (rectangles.get(shareScreenNumber).getX()); // convert double to int int y = (int) (rectangles.get(shareScreenNumber).getY()); // Fix invalid x, y position. @@ -975,7 +975,7 @@ Object retinaScale = field.get(devices[shareScreenNumber]); if (retinaScale instanceof Integer) { - scale = (int)retinaScale; + scale = (Integer) retinaScale; return scale; } } @@ -998,15 +998,24 @@ } } + /** + * change screen viewer scale to fit the server screen size + */ public void fitScreen() { ArrayList rectangles = viewer.getScreenRectangles(); int leftScreenNumber = 0; int thisScreenWidth = (int) rectangles.get(leftScreenNumber).getWidth(); int thisScreenHeight = (int) rectangles.get(leftScreenNumber).getHeight(); + + int thatScreenX = (int) presenter.getX(); + int thatScreenY = (int) presenter.getY(); + int singleWidth = viewer.getRfb().getSingleWidth() * viewer.getRfb().getRetinaScale(); int singleHeight = viewer.getRfb().getSingleHeight() * viewer.getRfb().getRetinaScale(); frame.setSize(thisScreenWidth, thisScreenHeight); + Rectangle visible = new Rectangle(thatScreenX,thatScreenY,thisScreenWidth,thisScreenHeight); + scroller.scrollRectToVisible(visible); uiSettings.fitScreen(thisScreenWidth, thisScreenHeight, singleWidth, singleHeight); }