# HG changeset patch # User one # Date 1386572946 -32400 # Node ID 913d0f663e74b1376dcca637c3f1ca5aa7d75406 # Parent 9fdb8ff884973ee0d63ddd42b87015f90296b410 12/9 diff -r 9fdb8ff88497 -r 913d0f663e74 src/main/java/com/glavsoft/rfb/client/FramebufferUpdateRequestMessage.java --- a/src/main/java/com/glavsoft/rfb/client/FramebufferUpdateRequestMessage.java Mon Dec 02 14:20:37 2013 +0900 +++ b/src/main/java/com/glavsoft/rfb/client/FramebufferUpdateRequestMessage.java Mon Dec 09 16:09:06 2013 +0900 @@ -39,7 +39,7 @@ private final int x; private boolean sendFullScreenFlag; - + public FramebufferUpdateRequestMessage(int x, int y, int width, int height, boolean incremental) { this.x = x; @@ -47,7 +47,7 @@ this.width = width; this.height = height; this.incremental = incremental; - sendFullScreenRequest(); +// sendFullScreenRequest(); } @Override diff -r 9fdb8ff88497 -r 913d0f663e74 src/main/java/com/glavsoft/rfb/protocol/Protocol.java --- a/src/main/java/com/glavsoft/rfb/protocol/Protocol.java Mon Dec 02 14:20:37 2013 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/Protocol.java Mon Dec 09 16:09:06 2013 +0900 @@ -201,7 +201,6 @@ sendSupportedEncodingsMessage(settings); settings.addListener(this); // to support pixel format (color depth), and encodings changes settings.addListener(repaintController); - sendRefreshMessage(); senderTask = new SenderTask(messageQueue, writer, this); senderThread = new Thread(senderTask); @@ -313,7 +312,6 @@ sendSupportedEncodingsMessage(settings); settings.addListener(this); // to support pixel format (color depth), and encodings changes settings.addListener(surface); - sendRefreshMessage(); senderTask = new SenderTask(messageQueue, writer, this); senderThread = new Thread(senderTask); diff -r 9fdb8ff88497 -r 913d0f663e74 src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java --- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Mon Dec 02 14:20:37 2013 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Mon Dec 09 16:09:06 2013 +0900 @@ -72,6 +72,9 @@ MyRfbProto _rfb) { this(reader,repaintController,clipboardController,decoders,context); rfb = _rfb; + if(!(rfb instanceof MyRfbProtoClient)) { + fullscreenFbUpdateIncrementalRequest.sendFullScreenRequest(); + } } @@ -84,9 +87,9 @@ this.context = context; this.decoders = decoders; renderer = repaintController.createRenderer(reader, context.getFbWidth(), context.getFbHeight(), - context.getPixelFormat()); - fullscreenFbUpdateIncrementalRequest = - new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), true); + context.getPixelFormat()); + fullscreenFbUpdateIncrementalRequest = + new FramebufferUpdateRequestMessage(0, 0, context.getFbWidth(), context.getFbHeight(), true); } @Override @@ -202,7 +205,7 @@ new FramebufferUpdateRequestMessage(0, 0, rect.width, rect.height, true); synchronized (renderer) { renderer = repaintController.createRenderer(reader, rect.width, rect.height, - context.getPixelFormat()); + context.getPixelFormat()); } context.sendMessage(new FramebufferUpdateRequestMessage(0, 0, rect.width, rect.height, false)); // repaintController.repaintCursor(); diff -r 9fdb8ff88497 -r 913d0f663e74 src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java Mon Dec 02 14:20:37 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java Mon Dec 09 16:09:06 2013 +0900 @@ -260,9 +260,9 @@ BufferedReader is = new BufferedReader(new InputStreamReader( soc.getInputStream())); parentAddress = is.readLine(); + String port = is.readLine(); // It is called when the screen changes. if ("reconnection".equals(parentAddress)) { - String port = is.readLine(); while (true) { try { client.setOpenPort(Integer.parseInt(port)); @@ -285,7 +285,7 @@ return null; is.readLine();// parentNum } - socket = new Socket(parentAddress,5999); + socket = new Socket(parentAddress,Integer.parseInt(port)); socket.setReuseAddress(true); return socket; } @@ -293,4 +293,9 @@ public String getParentsAddress() { return parentAddress; } + + public void reportConnectionFinished(Socket soc) throws IOException { + DataOutputStream os = new DataOutputStream(soc.getOutputStream()); + os.writeBytes("finished"); + } } \ No newline at end of file diff -r 9fdb8ff88497 -r 913d0f663e74 src/main/java/jp/ac/u_ryukyu/treevnc/client/WaitReply.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/WaitReply.java Mon Dec 02 14:20:37 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/WaitReply.java Mon Dec 09 16:09:06 2013 +0900 @@ -23,11 +23,6 @@ return passflag; } - private void reportConnectionFinished(Socket soc) throws IOException { - DataOutputStream os = new DataOutputStream(soc.getOutputStream()); - os.writeBytes("finished"); - } - public void run() { Socket clientSocket = null; ServerSocket echoServer = null; @@ -44,6 +39,7 @@ echo.client.run(); echoServer.close(); //report finished connection to server. + echo.reportConnectionFinished(clientSocket); clientSocket.close(); } diff -r 9fdb8ff88497 -r 913d0f663e74 src/main/java/jp/ac/u_ryukyu/treevnc/server/AcceptClient.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/server/AcceptClient.java Mon Dec 02 14:20:37 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/server/AcceptClient.java Mon Dec 09 16:09:06 2013 +0900 @@ -17,6 +17,7 @@ private String newparent, request, myAddress; private String leaderflag = "0", sendleaderflag = "0"; private final int intv_time = 100; + private String port = "5999"; public AcceptClient() { // this.name = name; @@ -244,6 +245,7 @@ BufferedReader is = new BufferedReader(new InputStreamReader( echoSocket.getInputStream())); os.writeBytes(newparent + "\n"); + os.writeBytes(this.port+"\n"); os.writeBytes(newpnum + "\n"); // os.writeBytes(newtreenum + "\n"); // os.writeBytes(newleaderflag + "\n"); diff -r 9fdb8ff88497 -r 913d0f663e74 src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java Mon Dec 02 14:20:37 2013 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java Mon Dec 09 16:09:06 2013 +0900 @@ -163,8 +163,8 @@ new PasswordChooser(passwordFromParams, connectionParams, containerFrame, this), settings); - if(fbWidth!=0) - workingProtocol.setScreenSizeRetina(fbWidth, fbHeight); +// if(fbWidth!=0) + workingProtocol.setScreenSizeRetina(1080, 1080); workingProtocol.handshake(); rfb.setProtocolContext(workingProtocol); // input into change parents diff -r 9fdb8ff88497 -r 913d0f663e74 src/viewer_swing/java/com/glavsoft/viewer/swing/Surface.java --- a/src/viewer_swing/java/com/glavsoft/viewer/swing/Surface.java Mon Dec 02 14:20:37 2013 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/swing/Surface.java Mon Dec 09 16:09:06 2013 +0900 @@ -39,7 +39,8 @@ import java.awt.*; @SuppressWarnings("serial") -public class Surface extends JPanel implements IRepaintController, IChangeSettingsListener { +public class Surface extends JPanel implements IRepaintController, + IChangeSettingsListener { private int width; private int height; @@ -67,18 +68,20 @@ this.scaleFactor = scaleFactor; init(context.getFbWidth(), context.getFbHeight()); - if ( ! context.getSettings().isViewOnly()) { + if (!context.getSettings().isViewOnly()) { setUserInputEnabled(true, context.getSettings().isConvertToAscii()); } showCursor = context.getSettings().isShowRemoteCursor(); } private void setUserInputEnabled(boolean enable, boolean convertToAscii) { - if (enable == isUserInputEnabled) return; + if (enable == isUserInputEnabled) + return; isUserInputEnabled = enable; if (enable) { if (null == mouseEventListener) { - mouseEventListener = new MouseEventListener(this, context, scaleFactor); + mouseEventListener = new MouseEventListener(this, context, + scaleFactor); } addMouseListener(mouseEventListener); addMouseMotionListener(mouseEventListener); @@ -88,7 +91,8 @@ if (null == keyEventListener) { keyEventListener = new KeyEventListener(context); if (modifierButtonListener != null) { - keyEventListener.addModifierListener(modifierButtonListener); + keyEventListener + .addModifierListener(modifierButtonListener); } } keyEventListener.setConvertToAscii(convertToAscii); @@ -103,7 +107,8 @@ } @Override - public Renderer createRenderer(Reader reader, int width, int height, PixelFormat pixelFormat) { + public Renderer createRenderer(Reader reader, int width, int height, + PixelFormat pixelFormat) { renderer = new RendererImpl(reader, width, height, pixelFormat); synchronized (renderer) { cursor = renderer.getCursor(); @@ -125,11 +130,12 @@ requestFocus(); } - @Override public void paintComponent(Graphics g) { - ((Graphics2D)g).scale(scaleFactor, scaleFactor); - ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); + if(renderer != null && cursor != null){ + ((Graphics2D) g).scale(scaleFactor, scaleFactor); + ((Graphics2D) g).setRenderingHint(RenderingHints.KEY_RENDERING, + RenderingHints.VALUE_RENDER_QUALITY); synchronized (renderer) { Image offscreenImage = renderer.getOffscreenImage(); if (offscreenImage != null) { @@ -138,18 +144,20 @@ } synchronized (cursor) { Image cursorImage = cursor.getImage(); - if (showCursor && cursorImage != null && - (scaleFactor != 1 || - g.getClipBounds().intersects(cursor.rX, cursor.rY, cursor.width, cursor.height))) { + if (showCursor + && cursorImage != null + && (scaleFactor != 1 || g.getClipBounds().intersects( + cursor.rX, cursor.rY, cursor.width, cursor.height))) { g.drawImage(cursorImage, cursor.rX, cursor.rY, null); } } + } } - @Override public Dimension getPreferredSize() { - return new Dimension((int)(this.width * scaleFactor), (int)(this.height * scaleFactor)); + return new Dimension((int) (this.width * scaleFactor), + (int) (this.height * scaleFactor)); } @Override @@ -175,17 +183,22 @@ @Override public void repaintBitmap(int x, int y, int width, int height) { - repaint((int)(x * scaleFactor), (int)(y * scaleFactor), - (int)Math.ceil(width * scaleFactor), (int)Math.ceil(height * scaleFactor)); + repaint((int) (x * scaleFactor), (int) (y * scaleFactor), + (int) Math.ceil(width * scaleFactor), + (int) Math.ceil(height * scaleFactor)); } @Override public void repaintCursor() { synchronized (cursor) { - repaint((int)(cursor.oldRX * scaleFactor), (int)(cursor.oldRY * scaleFactor), - (int)Math.ceil(cursor.oldWidth * scaleFactor) + 1, (int)Math.ceil(cursor.oldHeight * scaleFactor) + 1); - repaint((int)(cursor.rX * scaleFactor), (int)(cursor.rY * scaleFactor), - (int)Math.ceil(cursor.width * scaleFactor) + 1, (int)Math.ceil(cursor.height * scaleFactor) + 1); + repaint((int) (cursor.oldRX * scaleFactor), + (int) (cursor.oldRY * scaleFactor), + (int) Math.ceil(cursor.oldWidth * scaleFactor) + 1, + (int) Math.ceil(cursor.oldHeight * scaleFactor) + 1); + repaint((int) (cursor.rX * scaleFactor), + (int) (cursor.rY * scaleFactor), + (int) Math.ceil(cursor.width * scaleFactor) + 1, + (int) Math.ceil(cursor.height * scaleFactor) + 1); } } @@ -203,7 +216,8 @@ } } - public void addModifierListener(ModifierButtonEventListener modifierButtonListener) { + public void addModifierListener( + ModifierButtonEventListener modifierButtonListener) { this.modifierButtonListener = modifierButtonListener; if (keyEventListener != null) { keyEventListener.addModifierListener(modifierButtonListener); @@ -214,7 +228,8 @@ public void settingsChanged(SettingsChangedEvent e) { if (ProtocolSettings.isRfbSettingsChangedFired(e)) { ProtocolSettings settings = (ProtocolSettings) e.getSource(); - setUserInputEnabled( ! settings.isViewOnly(), settings.isConvertToAscii()); + setUserInputEnabled(!settings.isViewOnly(), + settings.isConvertToAscii()); showCursor(settings.isShowRemoteCursor()); } else if (UiSettings.isUiSettingsChangedFired(e)) { UiSettings settings = (UiSettings) e.getSource();