(!1654) Xnest: replace XSetClipMask() by xcb_change_gc()

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-08-05 16:00:15 +02:00
parent 0bd5a4774c
commit 643c9354a5

View File

@ -208,7 +208,13 @@ xnestChangeClip(GCPtr pGC, int type, void *pValue, int nRects)
switch (type) {
case CT_NONE:
XSetClipMask(xnestDisplay, xnestGC(pGC), XCB_PIXMAP_NONE);
{
uint32_t pixmap = XCB_PIXMAP_NONE;
xcb_change_gc(xnestUpstreamInfo.conn,
xnest_upstream_gc(pGC),
XCB_GC_CLIP_MASK,
&pixmap);
}
pValue = NULL;
break;
@ -242,8 +248,13 @@ xnestChangeClip(GCPtr pGC, int type, void *pValue, int nRects)
break;
case CT_PIXMAP:
XSetClipMask(xnestDisplay, xnestGC(pGC),
xnestPixmap((PixmapPtr) pValue));
{
uint32_t val = xnestPixmap((PixmapPtr) pValue);
xcb_change_gc(xnestUpstreamInfo.conn,
xnest_upstream_gc(pGC),
XCB_GC_CLIP_MASK,
&val);
}
/*
* Need to change into region, so subsequent uses are with
* current pixmap contents.
@ -321,7 +332,11 @@ xnestDestroyClip(GCPtr pGC)
{
if (pGC->clientClip) {
RegionDestroy(pGC->clientClip);
XSetClipMask(xnestDisplay, xnestGC(pGC), XCB_PIXMAP_NONE);
uint32_t val = XCB_PIXMAP_NONE;
xcb_change_gc(xnestUpstreamInfo.conn,
xnest_upstream_gc(pGC),
XCB_GC_CLIP_MASK,
&val);
pGC->clientClip = NULL;
}
}