xc/programs/Xserver/hw/xnest/Screen.c

xc/programs/Xserver/hw/xnest/Window.c
//bugs.freedesktop.org/show_bug.cgi?id=2546) attachment #2005
    (https://bugs.freedesktop.org/attachment.cgi?id=2005): Fix Xnest to
    update the shape regions in the backend server whenever a client
    changes them in Xnest (the fix is to add a new wrapper which calls
    |xnestShapeWindow()| before calling |miSetShape()|). Patch by Mark
    McLoughlin <mark@skynet.ie>
This commit is contained in:
Roland Mainz 2005-03-02 14:21:40 +00:00
parent 3f79c5eefc
commit d995fe631a
3 changed files with 13 additions and 0 deletions

View File

@ -361,6 +361,11 @@ xnestOpenScreen(int index, ScreenPtr pScreen, int argc, char *argv[])
if (!miScreenDevPrivateInit(pScreen, xnestWidth, NULL))
return FALSE;
#ifdef SHAPE
/* overwrite miSetShape with our own */
pScreen->SetShape = xnestSetShape;
#endif /* SHAPE */
/* devPrivates */
#define POSITION_OFFSET (pScreen->myNum * (xnestWidth + xnestHeight) / 32)

View File

@ -449,6 +449,13 @@ xnestWindowExposures(WindowPtr pWin, RegionPtr pRgn, RegionPtr other_exposed)
}
#ifdef SHAPE
void
xnestSetShape(WindowPtr pWin)
{
xnestShapeWindow(pWin);
miSetShape(pWin);
}
static Bool
xnestRegionEqual(RegionPtr pReg1, RegionPtr pReg2)
{

View File

@ -73,6 +73,7 @@ void xnestClipNotify(WindowPtr pWin, int dx, int dy);
void xnestWindowExposures(WindowPtr pWin, RegionPtr pRgn,
RegionPtr other_exposed);
#ifdef SHAPE
void xnestSetShape(WindowPtr pWin);
void xnestShapeWindow(WindowPtr pWin);
#endif /* SHAPE */