Auto scroll on host cursor movements.
Removed some debugging output.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2534 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/VncCanvas.java b/java/src/com/tightvnc/rfbplayer/VncCanvas.java
index cf6c2bd..48d0f6d 100644
--- a/java/src/com/tightvnc/rfbplayer/VncCanvas.java
+++ b/java/src/com/tightvnc/rfbplayer/VncCanvas.java
@@ -67,6 +67,9 @@
// once is necessary when the seek operation is finished.
boolean seekMode;
+ // Distance of mouse from viewer border to trigger automatic scrolling
+ final static int SCROLL_MARGIN = 50;
+
//
// The constructor.
//
@@ -886,7 +889,6 @@
softCursorPixels = new int[width * height];
if (encodingType == rfb.EncodingXCursor) {
- System.out.println("Reading x cursor");
// Read foreground and background colors of the cursor.
byte[] rgb = new byte[6];
@@ -896,9 +898,6 @@
(0xFF000000 | (rgb[0] & 0xFF) << 16 |
(rgb[1] & 0xFF) << 8 | (rgb[2] & 0xFF))
};
- for (int i = 0; i < 2; i++) {
- System.out.println("Color is " + Integer.toString(colors[i], 16));
- }
// Read pixel and mask data.
byte[] pixBuf = new byte[bytesMaskData];
@@ -935,7 +934,6 @@
} else {
// encodingType == rfb.EncodingRichCursor
- System.out.println("Reading x cursor");
// Read pixel and mask data.
byte[] pixBuf = new byte[width * height * 4];
@@ -1035,33 +1033,33 @@
repaint(deferCursorUpdates,
x - hotX, y - hotY, cursorWidth, cursorHeight);
- // Automatic viewport scrolling
-// if (viewer.desktopScrollPane != null) {
-// boolean needScroll = false;
-// Dimension d = viewer.desktopScrollPane.getSize();
-// Point topLeft = viewer.desktopScrollPane.getScrollPosition();
-// Point botRight = new Point(topLeft.x + d.width, topLeft.y + d.height);
-//
-// if (x < topLeft.x + SCROLL_MARGIN) {
-// // shift left
-// topLeft.x = x - SCROLL_MARGIN;
-// needScroll = true;
-// } else if (x > botRight.x - SCROLL_MARGIN) {
-// // shift right
-// topLeft.x = x - d.width + SCROLL_MARGIN;
-// needScroll = true;
-// }
-// if (y < topLeft.y + SCROLL_MARGIN) {
-// // shift up
-// topLeft.y = y - SCROLL_MARGIN;
-// needScroll = true;
-// } else if (y > botRight.y - SCROLL_MARGIN) {
-// // shift down
-// topLeft.y = y - d.height + SCROLL_MARGIN;
-// needScroll = true;
-// }
-// viewer.desktopScrollPane.setScrollPosition(topLeft.x, topLeft.y);
-// }
+ // Automatic viewport scrolling
+ if (player.desktopScrollPane != null) {
+ boolean needScroll = false;
+ Dimension d = player.desktopScrollPane.getSize();
+ Point topLeft = player.desktopScrollPane.getScrollPosition();
+ Point botRight = new Point(topLeft.x + d.width, topLeft.y + d.height);
+
+ if (x < topLeft.x + SCROLL_MARGIN) {
+ // shift left
+ topLeft.x = x - SCROLL_MARGIN;
+ needScroll = true;
+ } else if (x > botRight.x - SCROLL_MARGIN) {
+ // shift right
+ topLeft.x = x - d.width + SCROLL_MARGIN;
+ needScroll = true;
+ }
+ if (y < topLeft.y + SCROLL_MARGIN) {
+ // shift up
+ topLeft.y = y - SCROLL_MARGIN;
+ needScroll = true;
+ } else if (y > botRight.y - SCROLL_MARGIN) {
+ // shift down
+ topLeft.y = y - d.height + SCROLL_MARGIN;
+ needScroll = true;
+ }
+ player.desktopScrollPane.setScrollPosition(topLeft.x, topLeft.y);
+ }
}
cursorX = x;