Clean up CopyWindow hook so it's more readable.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4228 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/unix/xserver/hw/vnc/vncHooks.cc b/unix/xserver/hw/vnc/vncHooks.cc
index 3531ef2..2f7b4a2 100644
--- a/unix/xserver/hw/vnc/vncHooks.cc
+++ b/unix/xserver/hw/vnc/vncHooks.cc
@@ -397,12 +397,16 @@
 {
   SCREEN_UNWRAP(pWin->drawable.pScreen, CopyWindow);
 
+  int dx, dy;
   RegionHelper copied(pScreen, pOldRegion);
-  int dx = pWin->drawable.x - ptOldOrg.x;
-  int dy = pWin->drawable.y - ptOldOrg.y;
+
+  dx = pWin->drawable.x - ptOldOrg.x;
+  dy = pWin->drawable.y - ptOldOrg.y;
+
+  // RFB tracks copies in terms of destination rectangle, not source.
+  // We also need to copy with changes to the Window's clipping region.
   REGION_TRANSLATE(pScreen, copied.reg, dx, dy);
-  REGION_INTERSECT(pWin->drawable.pScreen, copied.reg, copied.reg,
-                   &pWin->borderClip);
+  REGION_INTERSECT(pScreen, copied.reg, copied.reg, &pWin->borderClip);
 
   (*pScreen->CopyWindow) (pWin, ptOldOrg, pOldRegion);