summaryrefslogtreecommitdiffstats
path: root/xorg/X11R7.6/rdp/rdpCopyArea.c
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2013-05-11 16:35:54 -0700
committerJay Sorg <jay.sorg@gmail.com>2013-05-11 16:35:54 -0700
commit01bb4d97f9b5799b6e92329b4e988c025164b5df (patch)
tree7033468f335a3e9d14692368285b3156164f4a20 /xorg/X11R7.6/rdp/rdpCopyArea.c
parent1674108d8d227e3babf138523bc7722ed74dc01e (diff)
downloadxrdp-proprietary-01bb4d97f9b5799b6e92329b4e988c025164b5df.tar.gz
xrdp-proprietary-01bb4d97f9b5799b6e92329b4e988c025164b5df.zip
X11rdp: fix an error in scrolling / CopyArea
Diffstat (limited to 'xorg/X11R7.6/rdp/rdpCopyArea.c')
-rw-r--r--xorg/X11R7.6/rdp/rdpCopyArea.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/xorg/X11R7.6/rdp/rdpCopyArea.c b/xorg/X11R7.6/rdp/rdpCopyArea.c
index e7ff742c..300f857d 100644
--- a/xorg/X11R7.6/rdp/rdpCopyArea.c
+++ b/xorg/X11R7.6/rdp/rdpCopyArea.c
@@ -81,9 +81,6 @@ rdpCopyAreaWndToWnd(WindowPtr pSrcWnd, WindowPtr pDstWnd, GCPtr pGC,
RegionRec clip_reg;
LLOGLN(10, ("rdpCopyAreaWndToWnd:"));
-
- rv = rdpCopyAreaOrg(&(pSrcWnd->drawable), &(pDstWnd->drawable),
- pGC, srcx, srcy, w, h, dstx, dsty);
RegionInit(&clip_reg, NullBox, 0);
cd = rdp_get_clip(&clip_reg, &(pDstWnd->drawable), pGC);
lsrcx = pSrcWnd->drawable.x + srcx;
@@ -104,14 +101,16 @@ rdpCopyAreaWndToWnd(WindowPtr pSrcWnd, WindowPtr pDstWnd, GCPtr pGC,
if (num_clips > 0)
{
rdpup_begin_update();
- dx = dstx - srcx;
- dy = dsty - srcy;
+ dx = ldstx - lsrcx;
+ dy = ldsty - lsrcy;
if ((dy < 0) || ((dy == 0) && (dx < 0)))
{
for (j = 0; j < num_clips; j++)
{
box = REGION_RECTS(&clip_reg)[j];
+ LLOGLN(10, (" index %d x1 %d y1 %d x2 %d y2 %d", j,
+ box.x1, box.y1, box.x2, box.y2));
rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1);
rdpup_screen_blt(ldstx, ldsty, w, h, lsrcx, lsrcy);
}
@@ -121,6 +120,8 @@ rdpCopyAreaWndToWnd(WindowPtr pSrcWnd, WindowPtr pDstWnd, GCPtr pGC,
for (j = num_clips - 1; j >= 0; j--)
{
box = REGION_RECTS(&clip_reg)[j];
+ LLOGLN(10, (" index %d x1 %d y1 %d x2 %d y2 %d", j,
+ box.x1, box.y1, box.x2, box.y2));
rdpup_set_clip(box.x1, box.y1, box.x2 - box.x1, box.y2 - box.y1);
rdpup_screen_blt(ldstx, ldsty, w, h, lsrcx, lsrcy);
}
@@ -132,6 +133,8 @@ rdpCopyAreaWndToWnd(WindowPtr pSrcWnd, WindowPtr pDstWnd, GCPtr pGC,
}
RegionUninit(&clip_reg);
+ rv = rdpCopyAreaOrg(&(pSrcWnd->drawable), &(pDstWnd->drawable),
+ pGC, srcx, srcy, w, h, dstx, dsty);
return rv;
}
@@ -154,9 +157,6 @@ rdpCopyAreaWndToPixmap(WindowPtr pSrcWnd,
RegionRec clip_reg;
LLOGLN(10, ("rdpCopyAreaWndToPixmap:"));
-
- rv = rdpCopyAreaOrg(&(pSrcWnd->drawable), &(pDstPixmap->drawable),
- pGC, srcx, srcy, w, h, dstx, dsty);
RegionInit(&clip_reg, NullBox, 0);
cd = rdp_get_clip(&clip_reg, &(pDstPixmap->drawable), pGC);
lsrcx = pSrcWnd->drawable.x + srcx;
@@ -195,6 +195,8 @@ rdpCopyAreaWndToPixmap(WindowPtr pSrcWnd,
}
RegionUninit(&clip_reg);
+ rv = rdpCopyAreaOrg(&(pSrcWnd->drawable), &(pDstPixmap->drawable),
+ pGC, srcx, srcy, w, h, dstx, dsty);
return rv;
}
@@ -218,9 +220,6 @@ rdpCopyAreaPixmapToWnd(PixmapPtr pSrcPixmap, rdpPixmapRec *pSrcPriv,
BoxRec box;
LLOGLN(10, ("rdpCopyAreaPixmapToWnd:"));
-
- rv = rdpCopyAreaOrg(&(pSrcPixmap->drawable), &(pDstWnd->drawable),
- pGC, srcx, srcy, w, h, dstx, dsty);
RegionInit(&clip_reg, NullBox, 0);
cd = rdp_get_clip(&clip_reg, &(pDstWnd->drawable), pGC);
ldstx = pDstWnd->drawable.x + dstx;
@@ -258,6 +257,8 @@ rdpCopyAreaPixmapToWnd(PixmapPtr pSrcPixmap, rdpPixmapRec *pSrcPriv,
}
RegionUninit(&clip_reg);
+ rv = rdpCopyAreaOrg(&(pSrcPixmap->drawable), &(pDstWnd->drawable),
+ pGC, srcx, srcy, w, h, dstx, dsty);
return rv;
}
@@ -283,9 +284,6 @@ rdpCopyAreaPixmapToPixmap(PixmapPtr pSrcPixmap, rdpPixmapRec *pSrcPriv,
BoxRec box;
LLOGLN(10, ("rdpCopyAreaPixmapToPixmap:"));
-
- rv = rdpCopyAreaOrg(&(pSrcPixmap->drawable), &(pDstPixmap->drawable),
- pGC, srcx, srcy, w, h, dstx, dsty);
RegionInit(&clip_reg, NullBox, 0);
cd = rdp_get_clip(&clip_reg, &(pDstPixmap->drawable), pGC);
LLOGLN(10, ("rdpCopyAreaPixmapToPixmap: cd %d", cd));
@@ -311,8 +309,8 @@ rdpCopyAreaPixmapToPixmap(PixmapPtr pSrcPixmap, rdpPixmapRec *pSrcPriv,
{
rdpup_switch_os_surface(pDstPriv->rdpindex);
rdpup_begin_update();
- dx = dstx - srcx;
- dy = dsty - srcy;
+ dx = ldstx - lsrcx;
+ dy = ldsty - lsrcy;
LLOGLN(10, ("rdpCopyAreaPixmapToPixmap: num_clips %d", num_clips));
@@ -344,6 +342,8 @@ rdpCopyAreaPixmapToPixmap(PixmapPtr pSrcPixmap, rdpPixmapRec *pSrcPriv,
}
RegionUninit(&clip_reg);
+ rv = rdpCopyAreaOrg(&(pSrcPixmap->drawable), &(pDstPixmap->drawable),
+ pGC, srcx, srcy, w, h, dstx, dsty);
return rv;
}