diff --git a/graphics/x11drv/dib.c b/graphics/x11drv/dib.c index 94262fca9e6b90524bdf2854ab08341400728bc2..84d4cb7c563cf949d3a5ae031bc32aec7659c771 100644 --- a/graphics/x11drv/dib.c +++ b/graphics/x11drv/dib.c @@ -1628,16 +1628,18 @@ static void X11DRV_DIB_SetImageBits_1( int lines, const BYTE *srcbits, XPutPixel( bmpImage, x++, h, colors[(srcval >> 1) & 1] ); XPutPixel( bmpImage, x++, h, colors[ srcval & 1] ); } - srcval=*srcbyte; - switch (dstwidth & 7) - { - case 7: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; - case 6: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; - case 5: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; - case 4: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; - case 3: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; - case 2: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; - case 1: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); + if (dstwidth % 8){ + srcval=*srcbyte; + switch (dstwidth & 7) + { + case 7: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; + case 6: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; + case 5: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; + case 4: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; + case 3: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; + case 2: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); srcval<<=1; + case 1: XPutPixel(bmpImage, x++, h, colors[srcval >> 7]); + } } srcbits += linebytes; }