summaryrefslogtreecommitdiff
path: root/fb/fbwindow.c
diff options
context:
space:
mode:
Diffstat (limited to 'fb/fbwindow.c')
-rw-r--r--fb/fbwindow.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/fb/fbwindow.c b/fb/fbwindow.c
index dd775cc0c..1666dfe16 100644
--- a/fb/fbwindow.c
+++ b/fb/fbwindow.c
@@ -1,4 +1,4 @@
-/* $XdotOrg$ */
+/* $XdotOrg: xc/programs/Xserver/fb/fbwindow.c,v 1.2 2004/04/23 19:05:14 eich Exp $ */
/*
* Id: fbwindow.c,v 1.1 1999/11/02 03:54:45 keithp Exp $
*
@@ -123,6 +123,9 @@ fbCopyWindow(WindowPtr pWin,
RegionRec rgnDst;
int dx, dy;
WindowPtr pwinRoot;
+#ifdef COMPOSITE
+ PixmapPtr pPixmap = fbGetWindowPixmap (pWin);
+#endif
pwinRoot = WindowTable[pWin->drawable.pScreen->myNum];
@@ -134,6 +137,12 @@ fbCopyWindow(WindowPtr pWin,
REGION_INTERSECT(pWin->drawable.pScreen, &rgnDst, &pWin->borderClip, prgnSrc);
+#ifdef COMPOSITE
+ if (pPixmap->screen_x || pPixmap->screen_y)
+ REGION_TRANSLATE (pWin->drawable.pScreen, &rgnDst,
+ -pPixmap->screen_x, -pPixmap->screen_y);
+#endif
+
fbCopyRegion ((DrawablePtr)pwinRoot, (DrawablePtr)pwinRoot,
0,
&rgnDst, dx, dy, fbCopyWindowProc, 0, 0);