diff --git a/graphics/x11drv/bitblt.c b/graphics/x11drv/bitblt.c index e99081c4151974517ad451be7c7271b785ccaadc..f89d6f90f5333e6997613bebd0da1cebc921d3db 100644 --- a/graphics/x11drv/bitblt.c +++ b/graphics/x11drv/bitblt.c @@ -1504,7 +1504,9 @@ BOOL X11DRV_BitBlt( DC *dcDst, INT xDst, INT yDst, sDst = X11DRV_LockDIBSection( dcDst, DIB_Status_None, FALSE ); sSrc = X11DRV_LockDIBSection( dcSrc, DIB_Status_None, FALSE ); - if ((sSrc == DIB_Status_AppMod) && (rop == SRCCOPY)) { + if ((sSrc == DIB_Status_AppMod) && (rop == SRCCOPY) && + (dcSrc->bitsPerPixel == dcDst->bitsPerPixel)) + { /* do everything ourselves; map coordinates */ xSrc = dcSrc->DCOrgX + XLPTODP( dcSrc, xSrc ); ySrc = dcSrc->DCOrgY + YLPTODP( dcSrc, ySrc );