From: Dave Airlie <[email protected]> The xinerama version of this wasn't translating the coordinates correctly.
Running xcompmgr against a xinerama Xephyr setup, would never draw anything on the second screen, and damage was occuring wrongly against the second screen. anyone care to wonder if SetWindowShapeRegion needs work? Signed-off-by: Dave Airlie <[email protected]> --- xfixes/region.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/xfixes/region.c b/xfixes/region.c index 81ead4d..e5d3664 100644 --- a/xfixes/region.c +++ b/xfixes/region.c @@ -900,7 +900,7 @@ PanoramiXFixesSetPictureClipRegion (ClientPtr client) REQUEST(xXFixesSetPictureClipRegionReq); int result = Success, j; PanoramiXRes *pict; - + INT16 orig_x, orig_y; REQUEST_SIZE_MATCH (xXFixesSetPictureClipRegionReq); if ((result = dixLookupResourceByType((void **)&pict, stuff->picture, @@ -909,9 +909,16 @@ PanoramiXFixesSetPictureClipRegion (ClientPtr client) client->errorValue = stuff->picture; return result; } + orig_x = stuff->xOrigin; + orig_y = stuff->yOrigin; FOR_NSCREENS_BACKWARD(j) { stuff->picture = pict->info[j].id; + if (pict->u.pict.root) + { + stuff->xOrigin = orig_x - screenInfo.screens[j]->x; + stuff->yOrigin = orig_y - screenInfo.screens[j]->y; + } result = (*PanoramiXSaveXFixesVector[X_XFixesSetPictureClipRegion]) (client); if(result != Success) break; } -- 1.7.1 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
