Blame SOURCES/0006-fixes-Fix-PanoramiXSetWindowShapeRegion.patch

70130e
From ad2ba329d91157cd5ad09d871d0d5a74998d2518 Mon Sep 17 00:00:00 2001
70130e
From: Adam Jackson <ajax@redhat.com>
70130e
Date: Mon, 4 Nov 2013 17:49:34 -0500
70130e
Subject: [PATCH 6/6] fixes: Fix PanoramiXSetWindowShapeRegion
70130e
70130e
Windows in Xinerama are in the coordinate space of their root window
70130e
pixmap, not in protocol space.
70130e
70130e
Signed-off-by: Adam Jackson <ajax@redhat.com>
70130e
---
70130e
 xfixes/region.c | 12 ++++++++++++
70130e
 1 file changed, 12 insertions(+)
70130e
70130e
diff --git a/xfixes/region.c b/xfixes/region.c
70130e
index eb4a082..752cef1 100644
70130e
--- a/xfixes/region.c
70130e
+++ b/xfixes/region.c
70130e
@@ -857,6 +857,7 @@ PanoramiXFixesSetWindowShapeRegion(ClientPtr client)
70130e
 {
70130e
     int result = Success, j;
70130e
     PanoramiXRes *win;
70130e
+    RegionPtr reg = NULL;
70130e
 
70130e
     REQUEST(xXFixesSetWindowShapeRegionReq);
70130e
 
70130e
@@ -869,10 +870,21 @@ PanoramiXFixesSetWindowShapeRegion(ClientPtr client)
70130e
         return result;
70130e
     }
70130e
 
70130e
+    VERIFY_REGION_OR_NONE(reg, stuff->region, client, DixReadAccess);
70130e
+
70130e
     FOR_NSCREENS_FORWARD(j) {
70130e
+        ScreenPtr screen = screenInfo.screens[j];
70130e
         stuff->dest = win->info[j].id;
70130e
+
70130e
+        if (reg)
70130e
+            RegionTranslate(reg, -screen->x, -screen->y);
70130e
+
70130e
         result =
70130e
             (*PanoramiXSaveXFixesVector[X_XFixesSetWindowShapeRegion]) (client);
70130e
+
70130e
+        if (reg)
70130e
+            RegionTranslate(reg, screen->x, screen->y);
70130e
+
70130e
         if (result != Success)
70130e
             break;
70130e
     }
70130e
-- 
70130e
1.8.3.1
70130e