summaryrefslogtreecommitdiffstats
path: root/xorg/X11R7.6/rdp/rdpCopyPlane.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg/X11R7.6/rdp/rdpCopyPlane.c')
-rw-r--r--xorg/X11R7.6/rdp/rdpCopyPlane.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/xorg/X11R7.6/rdp/rdpCopyPlane.c b/xorg/X11R7.6/rdp/rdpCopyPlane.c
index 78b1c338..73f337cc 100644
--- a/xorg/X11R7.6/rdp/rdpCopyPlane.c
+++ b/xorg/X11R7.6/rdp/rdpCopyPlane.c
@@ -86,11 +86,34 @@ rdpCopyPlane(DrawablePtr pSrc, DrawablePtr pDst,
rdpPixmapRec* pDstPriv;
rdpPixmapRec* pDirtyPriv;
+ PixmapPtr pSrcPixmap;
+ rdpPixmapRec* pSrcPriv;
+
LLOGLN(10, ("rdpCopyPlane:"));
+ if (pSrc->type == DRAWABLE_PIXMAP)
+ {
+ pSrcPixmap = (PixmapPtr)pSrc;
+ pSrcPriv = GETPIXPRIV(pSrcPixmap);
+ if (XRDP_IS_OS(pSrcPriv))
+ {
+ rdpup_check_dirty(pSrcPixmap, pSrcPriv);
+ }
+ }
+ if (pDst->type == DRAWABLE_PIXMAP)
+ {
+ pDstPixmap = (PixmapPtr)pDst;
+ pDstPriv = GETPIXPRIV(pDstPixmap);
+ if (XRDP_IS_OS(pDstPriv))
+ {
+ rdpup_check_dirty(pDstPixmap, pDstPriv);
+ }
+ }
+
/* do original call */
rv = rdpCopyPlaneOrg(pSrc, pDst, pGC, srcx, srcy, w, h,
dstx, dsty, bitPlane);
+
dirty_type = 0;
pDirtyPriv = 0;
post_process = 0;
@@ -108,7 +131,7 @@ rdpCopyPlane(DrawablePtr pSrc, DrawablePtr pDst,
LLOGLN(10, ("rdpCopyPlane: gettig dirty"));
pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv;
- dirty_type = RDI_IMGLY;
+ dirty_type = RDI_IMGLL;
}
else
{