[PATCH] composite: Fix COW creation for Xinerama
Adam Jackson
ajax at redhat.com
Mon Nov 4 22:57:58 CET 2013
Say you have two 800x600 screens left/right of each other. A window
that's 200x200 at +700+0 in protocol coordinate space will appear to be
at -100+0 in the coordinate space of the right hand screen. Put another
way: windows are in the coordinate space of their root window pixmap.
We weren't doing this translation for the COW, so when rendering came in
to it you'd see the top-left chunk of the COW on all screens. Cool
effect and all, but wrong.
Signed-off-by: Adam Jackson <ajax at redhat.com>
---
composite/compoverlay.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/composite/compoverlay.c b/composite/compoverlay.c
index d3cfaf0..575be42 100644
--- a/composite/compoverlay.c
+++ b/composite/compoverlay.c
@@ -142,7 +142,7 @@ compCreateOverlayWindow(ScreenPtr pScreen)
#endif
pWin = cs->pOverlayWin =
- CreateWindow(cs->overlayWid, pRoot, 0, 0, w, h, 0,
+ CreateWindow(cs->overlayWid, pRoot, -pScreen->x, -pScreen->y, w, h, 0,
InputOutput, CWBackPixmap | CWOverrideRedirect, &attrs[0],
pRoot->drawable.depth,
serverClient, pScreen->rootVisual, &result);
--
1.8.3.1
More information about the xorg-devel
mailing list