From cb020861deb8bfa91579de72f3860c445ed752d3 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 7 Nov 2013 13:59:30 -0500 Subject: [PATCH 4/6] composite: Fix COW creation for Xinerama 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 --- 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