--- vnc_javasrc.orig/VncCanvas.java 2004-10-10 02:15:54.000000000 -0400 +++ vnc_javasrc/VncCanvas.java 2006-03-27 22:34:02.000000000 -0500 @@ -28,6 +28,7 @@ import java.lang.*; import java.util.zip.*; +import java.util.Collections; // // VncCanvas is a subclass of Canvas which draws a VNC desktop on it. @@ -81,6 +82,20 @@ cm8 = new DirectColorModel(8, 7, (7 << 3), (3 << 6)); cm24 = new DirectColorModel(24, 0xFF0000, 0x00FF00, 0x0000FF); + // kludge to not show any Java cursor in the canvas since we are + // showing the soft cursor (should be a user setting...) + Cursor dot = Toolkit.getDefaultToolkit().createCustomCursor( + Toolkit.getDefaultToolkit().createImage(new byte[4]), new Point(0,0), + "dot"); + this.setCursor(dot); + + // while we are at it... get rid of the keyboard traversals that + // make it so we can't type a Tab character: + this.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, + Collections.EMPTY_SET); + this.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, + Collections.EMPTY_SET); + colors = new Color[256]; for (int i = 0; i < 256; i++) colors[i] = new Color(cm8.getRGB(i)); @@ -1387,9 +1402,9 @@ result = cm8.getRGB(pixBuf[i]); } else { result = 0xFF000000 | - (pixBuf[i * 4 + 1] & 0xFF) << 16 | - (pixBuf[i * 4 + 2] & 0xFF) << 8 | - (pixBuf[i * 4 + 3] & 0xFF); + (pixBuf[i * 4 + 2] & 0xFF) << 16 | + (pixBuf[i * 4 + 1] & 0xFF) << 8 | + (pixBuf[i * 4 + 0] & 0xFF); } } else { result = 0; // Transparent pixel @@ -1403,9 +1418,9 @@ result = cm8.getRGB(pixBuf[i]); } else { result = 0xFF000000 | - (pixBuf[i * 4 + 1] & 0xFF) << 16 | - (pixBuf[i * 4 + 2] & 0xFF) << 8 | - (pixBuf[i * 4 + 3] & 0xFF); + (pixBuf[i * 4 + 2] & 0xFF) << 16 | + (pixBuf[i * 4 + 1] & 0xFF) << 8 | + (pixBuf[i * 4 + 0] & 0xFF); } } else { result = 0; // Transparent pixel