# HG changeset patch
# User oc
# Date 1424769024 -32400
# Node ID 2b4251bd599671c9a11648541bea757d9d2d0bb0
# Parent 82825c322044435d0ff72cfa099bee720b0f7909
set next display size
diff -r 82825c322044 -r 2b4251bd5996 .idea/gradle.xml
--- a/.idea/gradle.xml Mon Feb 23 18:46:48 2015 +0900
+++ b/.idea/gradle.xml Tue Feb 24 18:10:24 2015 +0900
@@ -14,4 +14,5 @@
-
\ No newline at end of file
+
+
diff -r 82825c322044 -r 2b4251bd5996 .idea/libraries/Gradle__com_jcraft_jsch_0_1_50.xml
--- a/.idea/libraries/Gradle__com_jcraft_jsch_0_1_50.xml Mon Feb 23 18:46:48 2015 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff -r 82825c322044 -r 2b4251bd5996 TreeVNC.iml
--- a/TreeVNC.iml Mon Feb 23 18:46:48 2015 +0900
+++ b/TreeVNC.iml Tue Feb 24 18:10:24 2015 +0900
@@ -1,23 +1,24 @@
-
+
+
-
+
-
-
+
-
\ No newline at end of file
+
+
diff -r 82825c322044 -r 2b4251bd5996 src/main/java/jp/ac/u_ryukyu/treevnc/ScreenChangeRequest.java
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/ScreenChangeRequest.java Mon Feb 23 18:46:48 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/ScreenChangeRequest.java Tue Feb 24 18:10:24 2015 +0900
@@ -21,20 +21,24 @@
private short id;
private int frameSizeWidth;
private int frameSizeHeight;
+ private int nextSingleWidth;
+ private int nextSingleHeight;
private int port;
- public ScreenChangeRequest(String adr, int port, short id, int width, int height) {
+ public ScreenChangeRequest(String adr, int port, short id, int width, int height, int nextSingleWidth, int nextSingleHeight) {
this.bytes = adr;
this.port = port;
this.id = id;
this.frameSizeWidth = width;
this.frameSizeHeight = height;
+ this.nextSingleWidth = nextSingleWidth;
+ this.nextSingleHeight = nextSingleHeight;
System.out.println("Client send change screen server request :" + adr);
}
@Override
public void send(Writer writer) throws TransportException {
- ByteBuffer out = ByteBuffer.allocate(bytes.length()+25);
+ ByteBuffer out = ByteBuffer.allocate(bytes.length()+25+8);
out.order(ByteOrder.BIG_ENDIAN);
out.put(SERVER_CHANGE_REQUEST);
out.put((byte)0); // padding
@@ -43,6 +47,8 @@
out.put(bytes.getBytes());
out.putInt(frameSizeWidth);
out.putInt(frameSizeHeight);
+ out.putInt(nextSingleWidth);
+ out.putInt(nextSingleHeight);
out.putInt(port);
writer.write(out.array(), 0, out.position());
writer.flush();
diff -r 82825c322044 -r 2b4251bd5996 src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Mon Feb 23 18:46:48 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java Tue Feb 24 18:10:24 2015 +0900
@@ -78,6 +78,8 @@
private byte[] originalInitData = null;
private boolean childrenMulticast = true;
+ public int nextSingleWidth;
+ public int nextSingleHeight;
public TreeRFBProto(boolean isTreeManager, ViewerInterface viewer) {
rThread = new RequestScreenThread(this);
@@ -212,9 +214,13 @@
String newHostName = new String(byteAddress, "UTF-8");
int frameSizeWidth = buf.getInt();
int frameSizeHeight = buf.getInt();
+ int nextSingleWidth = buf.getInt();
+ int nextSingleHeight = buf.getInt();
+ setSingleDisplaySize(frameSizeWidth, frameSizeHeight);
+ setNextSingleDisplaySize(nextSingleWidth, nextSingleHeight);
int port = buf.getInt();
System.out.println("Root server change request :" + newHostName + " : " + port);
- changeVNCServer(viewer, newHostName, port, frameSizeWidth, frameSizeHeight, id);
+ changeVNCServer(viewer, newHostName, port, id);
if (viewer != null) {
viewer.setFitScreen();
}
@@ -806,20 +812,11 @@
* @param vncProxyService
* @param hostName
* HostAddress
- * @param width
- * FrameWidth
- * @param height
- * FrameHeight
* @param newVNCServerId
*/
- public void changeVNCServer(ViewerInterface vncProxyService, String hostName, int port, int width, int height, short newVNCServerId)
+ public void changeVNCServer(ViewerInterface vncProxyService, String hostName, int port, short newVNCServerId)
throws IOException {
- this.frameSizeWidth = width;
- this.frameSizeHeight = height;
- singleWidth = frameSizeWidth;
- singleHeight = frameSizeHeight;
-
if (newVNCServerId == -1) {
// change to the tree vnc root on other network.
// send whereToConnect.
@@ -934,6 +931,11 @@
this.singleHeight = singleHeight;
}
+ public void setNextSingleDisplaySize(int singleWidth, int singleHeight) {
+ this.nextSingleWidth = singleWidth;
+ this.nextSingleWidth = singleHeight;
+ }
+
public int getSingleWidth() {
return singleWidth;
}
diff -r 82825c322044 -r 2b4251bd5996 src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java
--- a/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java Mon Feb 23 18:46:48 2015 +0900
+++ b/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java Tue Feb 24 18:10:24 2015 +0900
@@ -854,17 +854,22 @@
public void actionPerformed(ActionEvent e) {
viewer.setVisible(false);
- float scaleFactor = getMyDisplayScaleFactor();
+
ArrayList rectangles = viewer.getScreenRectangles();
int leftScreenNumber = 0;
- int singleWidth = (int) (rectangles.get(leftScreenNumber).getWidth() * scaleFactor);
- int singleHeight = (int) (rectangles.get(leftScreenNumber).getHeight() * scaleFactor);
- viewer.getRfb().setSingleDisplaySize(singleWidth, singleHeight);
+ int rightScreenNumber = 1;
+ int singleWidth = (int) (rectangles.get(leftScreenNumber).getWidth());
+ int singleHeight = (int) (rectangles.get(leftScreenNumber).getHeight());
+ int nextSingleWidth = (int) (rectangles.get(rightScreenNumber).getWidth());
+ int nextSingleHeight = (int) (rectangles.get(rightScreenNumber).getHeight());
+
if (viewer.getRfb().hasParent()) {
String adr = viewer.getRfb().getMyAddress();
- context.sendMessage(new ScreenChangeRequest(adr, ConnectionParams.DEFAULT_VNC_ROOT, viewer.getRfb().getId(), singleWidth, singleHeight));
+ context.sendMessage(new ScreenChangeRequest(adr, ConnectionParams.DEFAULT_VNC_ROOT, viewer.getRfb().getId(), singleWidth, singleHeight, nextSingleWidth, nextSingleHeight));
}
if (viewer.getRfb().isTreeManager()) {
+ viewer.getRfb().setSingleDisplaySize(singleWidth, singleHeight);
+ viewer.getRfb().setNextSingleDisplaySize(nextSingleWidth, nextSingleHeight);
changeVncServer(viewer, singleWidth, singleHeight, viewer.getRfb().getId());
return;
}
@@ -928,13 +933,6 @@
setButtonsBarVisible(true, container);
}
- private float getMyDisplayScaleFactor() {
- final String CONTENT_SCALE_FACTOR = "java.awt.contentScaleFactor";
- Float scaleFactor = (Float) Toolkit.getDefaultToolkit().getDesktopProperty(CONTENT_SCALE_FACTOR);
-
- return scaleFactor == null ? 1.0f : scaleFactor;
- }
-
public void fitScreen() {
ArrayList rectangles = viewer.getScreenRectangles();
int leftScreenNumber = 0;
@@ -1021,7 +1019,7 @@
private void changeVncServer(ViewerInterface viewer, int width, int height, short id) {
String localhost = "127.0.0.1"; // InetAddress.getLocalHost().getHostName()
try {
- viewer.getRfb().changeVNCServer(viewer, localhost, ConnectionParams.DEFAULT_RFB_PORT, width, height, id);
+ viewer.getRfb().changeVNCServer(viewer, localhost, ConnectionParams.DEFAULT_RFB_PORT, id);
} catch (Exception e1) {
System.out.println("can't change server :" + e1.getMessage());
}