File xorg-server-xf4vnc-TranslateNone.diff of Package xorg-x11-server

Index: xorg-server-1.6.3.901/hw/vnc/translate.c
================================================================================
--- xorg-server-1.7.99/hw/vnc/translate.c
+++ xorg-server-1.7.99/hw/vnc/translate.c
@@ -168,17 +168,17 @@
 {
     VNCSCREENPTR(pScreen);
     DrawablePtr pDraw = (DrawablePtr)WindowTable[pScreen->myNum];
-    int truewidth = PixmapBytePad(width, in->bitsPerPixel) / 4;
+    int truewidth = PixmapBytePad(width, in->bitsPerPixel);
 
-    if ((x + truewidth > pVNC->width) || truewidth != width) {
-	unsigned char *buffer = malloc(truewidth * height * in->bitsPerPixel / 8);
+    if ((x + width > pVNC->width) || truewidth != width * in->bitsPerPixel / 8) {
+	unsigned char *buffer = malloc(truewidth * height);
 	unsigned char *buf = buffer;
 	
-    	(*pScreen->GetImage)(pDraw, x, y, truewidth, height, ZPixmap, ~0, (char*)buf);
+    	(*pScreen->GetImage)(pDraw, x, y, width, height, ZPixmap, ~0, (char*)buf);
 	while (height--) {
 	    memcpy(optr, buf, width * in->bitsPerPixel / 8);
 	    optr += width * in->bitsPerPixel / 8;
-	    buf += truewidth * in->bitsPerPixel / 8;
+	    buf += truewidth;
 	}
 	free(buffer);
 	return;
openSUSE Build Service is sponsored by