From 47f18e575da762733c19e9f499472ba42f478df8 Mon Sep 17 00:00:00 2001
From: dscho <dscho>
Date: Tue, 16 Oct 2001 19:29:49 +0000
Subject: font errors, requestedRegion bug

---
 TODO        |  3 +++
 font.c      |  4 ++--
 rfbserver.c | 10 ++++++----
 3 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/TODO b/TODO
index 3b4f99d..16bac26 100644
--- a/TODO
+++ b/TODO
@@ -1,6 +1,9 @@
 immediate:
 ----------
 
+DeferUpdateTime (timing problems!)
+cursor drawing: set optional grain to mark bigger rectangles as drawn (else
+	you end up with thousands of one-pixel-rectangles to encode).
 selectbox: scroll bars
 documentation
 	hint that to mark very tiny regions as
diff --git a/font.c b/font.c
index 680ec33..cb31f7f 100644
--- a/font.c
+++ b/font.c
@@ -28,7 +28,7 @@ int rfbDrawChar(rfbScreenInfoPtr rfbScreen,rfbFontDataPtr font,
 	memcpy(rfbScreen->frameBuffer+(y+j)*rowstride+(x+i)*bpp,colour,bpp);
       d<<=1;
     }
-    if((i&7)!=0) data++;
+    /* if((i&7)!=0) data++; */
   }
   return(width);
 }
@@ -90,7 +90,7 @@ int rfbDrawCharWithClip(rfbScreenInfoPtr rfbScreen,rfbFontDataPtr font,
       }
       d<<=1;
     }
-    //if((i&7)==0) data++;
+    /* if((i&7)==0) data++; */
     data += extra_bytes;
   }
   return(width);
diff --git a/rfbserver.c b/rfbserver.c
index e8c913d..3c3c858 100644
--- a/rfbserver.c
+++ b/rfbserver.c
@@ -871,7 +871,7 @@ rfbSendFramebufferUpdate(cl, givenUpdateRegion)
     sraRect rect;
     int nUpdateRegionRects;
     rfbFramebufferUpdateMsg *fu = (rfbFramebufferUpdateMsg *)cl->updateBuf;
-    sraRegionPtr updateRegion,updateCopyRegion;
+    sraRegionPtr updateRegion,updateCopyRegion,tmpRegion;
     int dx, dy;
     Bool sendCursorShape = FALSE;
 
@@ -932,8 +932,10 @@ rfbSendFramebufferUpdate(cl, givenUpdateRegion)
 
     updateCopyRegion = sraRgnCreateRgn(cl->copyRegion);
     sraRgnAnd(updateCopyRegion,cl->requestedRegion);
-    sraRgnOffset(cl->requestedRegion,cl->copyDX,cl->copyDY);
-    sraRgnAnd(updateCopyRegion,cl->requestedRegion);
+    tmpRegion = sraRgnCreateRgn(cl->requestedRegion);
+    sraRgnOffset(tmpRegion,cl->copyDX,cl->copyDY);
+    sraRgnAnd(updateCopyRegion,tmpRegion);
+    sraRgnDestroy(tmpRegion);
     dx = cl->copyDX;
     dy = cl->copyDY;
 
@@ -957,7 +959,7 @@ rfbSendFramebufferUpdate(cl, givenUpdateRegion)
      sraRgnSubtract(cl->modifiedRegion,updateRegion);
      sraRgnSubtract(cl->modifiedRegion,updateCopyRegion);
 
-     sraRgnMakeEmpty(cl->requestedRegion);
+     /* sraRgnMakeEmpty(cl->requestedRegion); */
      sraRgnMakeEmpty(cl->copyRegion);
      cl->copyDX = 0;
      cl->copyDY = 0;
-- 
cgit v1.2.3

