diff options
Diffstat (limited to 'rfbserver.c')
-rw-r--r-- | rfbserver.c | 10 |
1 files changed, 6 insertions, 4 deletions
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; |