Reworked last patch: Call the original Composite procedure, even
though xDst or yDst is negative.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@282 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/xc/programs/Xserver/vnc/vncHooks.cc b/xc/programs/Xserver/vnc/vncHooks.cc
index c0880d9..d040e4f 100644
--- a/xc/programs/Xserver/vnc/vncHooks.cc
+++ b/xc/programs/Xserver/vnc/vncHooks.cc
@@ -510,16 +510,15 @@
   // the type:
   // ComparingUpdateTracker: rect outside fb (-47,76-171,89)
   // I've never observed a negative yDst, but let's check it anyway. 
-  if ((xDst < 0) || (yDst < 0))
-      return;
+  if ((xDst >= 0) && (yDst >= 0)) {
+      box.x1 = pDst->pDrawable->x + xDst;
+      box.y1 = pDst->pDrawable->y + yDst;
+      box.x2 = box.x1 + width;
+      box.y2 = box.y1 + height;
 
-  box.x1 = pDst->pDrawable->x + xDst;
-  box.y1 = pDst->pDrawable->y + yDst;
-  box.x2 = box.x1 + width;
-  box.y2 = box.y1 + height;
-
-  RegionHelper changed(pScreen, &box, 0);
-  vncHooksScreen->desktop->add_changed(changed.reg);
+      RegionHelper changed(pScreen, &box, 0);
+      vncHooksScreen->desktop->add_changed(changed.reg);
+  } 
 
   ps->Composite = vncHooksScreen->Composite;
   (*ps->Composite)(op, pSrc, pMask, pDst, xSrc, ySrc,