xserver: Branch 'master'
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Aug 19 23:59:43 UTC 2025
Xext/shape.c | 131 ++++++++++++++++++++++++++++++++++++-----------------------
1 file changed, 80 insertions(+), 51 deletions(-)
New commits:
commit dcd1ffa0c25ffba8a5f043481393d657a0bf5a33
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date: Sun Aug 10 11:47:41 2025 -0700
Revert "Xext: shape: clean up Xinerama dispatch"
This reverts commit a57db845bbc67a7fe3f90390365420692b16b1ab.
It breaks when building with -Dxinerama=false:
../Xext/shape.c: In function ‘ProcShapeRectangles’:
../Xext/shape.c:318:12: error: too few arguments to function
‘ShapeRectangles’; expected 2, have 1
318 | return ShapeRectangles(client);
| ^~~~~~~~~~~~~~~
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2055>
diff --git a/Xext/shape.c b/Xext/shape.c
index 65c55699f..08f012164 100644
--- a/Xext/shape.c
+++ b/Xext/shape.c
@@ -225,16 +225,24 @@ ProcShapeQueryVersion(ClientPtr client)
return Success;
}
+/*****************
+ * ProcShapeRectangles
+ *
+ *****************/
+
static int
-ShapeRectangles(ClientPtr client, xShapeRectanglesReq *stuff)
+ProcShapeRectangles(ClientPtr client)
{
WindowPtr pWin;
+
+ REQUEST(xShapeRectanglesReq);
xRectangle *prects;
int nrects, ctype, rc;
RegionPtr srcRgn;
RegionPtr *destRgn;
CreateDftPtr createDefault;
+ REQUEST_AT_LEAST_SIZE(xShapeRectanglesReq);
UpdateCurrentTime();
rc = dixLookupWindow(&pWin, stuff->dest, client, DixSetAttrAccess);
if (rc != Success)
@@ -289,19 +297,16 @@ ShapeRectangles(ClientPtr client, xShapeRectanglesReq *stuff)
stuff->xOff, stuff->yOff, createDefault);
}
+#ifdef XINERAMA
static int
-ProcShapeRectangles(ClientPtr client)
+ProcPanoramiXShapeRectangles(ClientPtr client)
{
REQUEST(xShapeRectanglesReq);
- REQUEST_AT_LEAST_SIZE(xShapeRectanglesReq);
-
-#ifdef XINERAMA
- if (noPanoramiXExtension)
- return ShapeRectangles(client, stuff);
-
PanoramiXRes *win;
int j, result;
+ REQUEST_AT_LEAST_SIZE(xShapeRectanglesReq);
+
result = dixLookupResourceByType((void **) &win, stuff->dest, XRT_WINDOW,
client, DixWriteAccess);
if (result != Success)
@@ -309,27 +314,32 @@ ProcShapeRectangles(ClientPtr client)
FOR_NSCREENS(j) {
stuff->dest = win->info[j].id;
- result = ShapeRectangles(client, stuff);
+ result = ProcShapeRectangles(client);
if (result != Success)
break;
}
return result;
-#else
- return ShapeRectangles(client);
-#endif
}
+#endif /* XINERAMA */
+
+/**************
+ * ProcShapeMask
+ **************/
static int
-ShapeMask(ClientPtr client, xShapeMaskReq *stuff)
+ProcShapeMask(ClientPtr client)
{
WindowPtr pWin;
ScreenPtr pScreen;
+
+ REQUEST(xShapeMaskReq);
RegionPtr srcRgn;
RegionPtr *destRgn;
PixmapPtr pPixmap;
CreateDftPtr createDefault;
int rc;
+ REQUEST_SIZE_MATCH(xShapeMaskReq);
UpdateCurrentTime();
rc = dixLookupWindow(&pWin, stuff->dest, client, DixSetAttrAccess);
if (rc != Success)
@@ -385,19 +395,16 @@ ShapeMask(ClientPtr client, xShapeMaskReq *stuff)
stuff->xOff, stuff->yOff, createDefault);
}
+#ifdef XINERAMA
static int
-ProcShapeMask(ClientPtr client)
+ProcPanoramiXShapeMask(ClientPtr client)
{
REQUEST(xShapeMaskReq);
- REQUEST_SIZE_MATCH(xShapeMaskReq);
-
-#ifdef XINERAMA
- if (noPanoramiXExtension)
- return ShapeMask(client, stuff);
-
PanoramiXRes *win, *pmap;
int j, result;
+ REQUEST_SIZE_MATCH(xShapeMaskReq);
+
result = dixLookupResourceByType((void **) &win, stuff->dest, XRT_WINDOW,
client, DixWriteAccess);
if (result != Success)
@@ -416,20 +423,24 @@ ProcShapeMask(ClientPtr client)
stuff->dest = win->info[j].id;
if (pmap)
stuff->src = pmap->info[j].id;
- result = ShapeMask(client, stuff);
+ result = ProcShapeMask(client);
if (result != Success)
break;
}
return result;
-#else
- return ShapeMask(client, stuff);
-#endif
}
+#endif /* XINERAMA */
+
+/************
+ * ProcShapeCombine
+ ************/
static int
-ShapeCombine(ClientPtr client, xShapeCombineReq *stuff)
+ProcShapeCombine(ClientPtr client)
{
WindowPtr pSrcWin, pDestWin;
+
+ REQUEST(xShapeCombineReq);
RegionPtr srcRgn;
RegionPtr *destRgn;
CreateDftPtr createDefault;
@@ -437,6 +448,7 @@ ShapeCombine(ClientPtr client, xShapeCombineReq *stuff)
RegionPtr tmp;
int rc;
+ REQUEST_SIZE_MATCH(xShapeCombineReq);
UpdateCurrentTime();
rc = dixLookupWindow(&pDestWin, stuff->dest, client, DixSetAttrAccess);
if (rc != Success)
@@ -511,19 +523,16 @@ ShapeCombine(ClientPtr client, xShapeCombineReq *stuff)
stuff->xOff, stuff->yOff, createDefault);
}
+#ifdef XINERAMA
static int
-ProcShapeCombine(ClientPtr client)
+ProcPanoramiXShapeCombine(ClientPtr client)
{
REQUEST(xShapeCombineReq);
- REQUEST_AT_LEAST_SIZE(xShapeCombineReq);
-
-#ifdef XINERAMA
- if (noPanoramiXExtension)
- return ShapeCombine(client, stuff);
-
PanoramiXRes *win, *win2;
int j, result;
+ REQUEST_AT_LEAST_SIZE(xShapeCombineReq);
+
result = dixLookupResourceByType((void **) &win, stuff->dest, XRT_WINDOW,
client, DixWriteAccess);
if (result != Success)
@@ -537,23 +546,28 @@ ProcShapeCombine(ClientPtr client)
FOR_NSCREENS(j) {
stuff->dest = win->info[j].id;
stuff->src = win2->info[j].id;
- result = ShapeCombine(client, stuff);
+ result = ProcShapeCombine(client);
if (result != Success)
break;
}
return result;
-#else
- return ShapeCombine(client, stuff);
-#endif
}
+#endif /* XINERAMA */
+
+/*************
+ * ProcShapeOffset
+ *************/
static int
-ShapeOffset(ClientPtr client, xShapeOffsetReq *stuff)
+ProcShapeOffset(ClientPtr client)
{
WindowPtr pWin;
+
+ REQUEST(xShapeOffsetReq);
RegionPtr srcRgn;
int rc;
+ REQUEST_SIZE_MATCH(xShapeOffsetReq);
UpdateCurrentTime();
rc = dixLookupWindow(&pWin, stuff->dest, client, DixSetAttrAccess);
if (rc != Success)
@@ -580,18 +594,15 @@ ShapeOffset(ClientPtr client, xShapeOffsetReq *stuff)
return Success;
}
+#ifdef XINERAMA
static int
-ProcShapeOffset(ClientPtr client)
+ProcPanoramiXShapeOffset(ClientPtr client)
{
REQUEST(xShapeOffsetReq);
- REQUEST_AT_LEAST_SIZE(xShapeOffsetReq);
-
-#ifdef XINERAMA
PanoramiXRes *win;
int j, result;
- if (noPanoramiXExtension)
- return ShapeOffset(client, stuff);
+ REQUEST_AT_LEAST_SIZE(xShapeOffsetReq);
result = dixLookupResourceByType((void **) &win, stuff->dest, XRT_WINDOW,
client, DixWriteAccess);
@@ -600,15 +611,13 @@ ProcShapeOffset(ClientPtr client)
FOR_NSCREENS(j) {
stuff->dest = win->info[j].id;
- result = ShapeOffset(client, stuff);
+ result = ProcShapeOffset(client);
if (result != Success)
break;
}
return result;
-#else
- return ShapeOffset(client, stuff);
-#endif
}
+#endif /* XINERAMA */
static int
ProcShapeQueryExtents(ClientPtr client)
@@ -1026,13 +1035,33 @@ ProcShapeDispatch(ClientPtr client)
case X_ShapeQueryVersion:
return ProcShapeQueryVersion(client);
case X_ShapeRectangles:
- return ProcShapeRectangles(client);
+#ifdef XINERAMA
+ if (!noPanoramiXExtension)
+ return ProcPanoramiXShapeRectangles(client);
+ else
+#endif /* XINERAMA */
+ return ProcShapeRectangles(client);
case X_ShapeMask:
- return ProcShapeMask(client);
+#ifdef XINERAMA
+ if (!noPanoramiXExtension)
+ return ProcPanoramiXShapeMask(client);
+ else
+#endif /* XINERAMA */
+ return ProcShapeMask(client);
case X_ShapeCombine:
- return ProcShapeCombine(client);
+#ifdef XINERAMA
+ if (!noPanoramiXExtension)
+ return ProcPanoramiXShapeCombine(client);
+ else
+#endif /* XINERAMA */
+ return ProcShapeCombine(client);
case X_ShapeOffset:
- return ProcShapeOffset(client);
+#ifdef XINERAMA
+ if (!noPanoramiXExtension)
+ return ProcPanoramiXShapeOffset(client);
+ else
+#endif /* XINERAMA */
+ return ProcShapeOffset(client);
case X_ShapeQueryExtents:
return ProcShapeQueryExtents(client);
case X_ShapeSelectInput:
More information about the xorg-commit
mailing list