diff options
Diffstat (limited to 'hw/xnest')
-rw-r--r-- | hw/xnest/Screen.c | 5 | ||||
-rw-r--r-- | hw/xnest/Window.c | 7 | ||||
-rw-r--r-- | hw/xnest/XNWindow.h | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/hw/xnest/Screen.c b/hw/xnest/Screen.c index 676e7748f..3dec48b5f 100644 --- a/hw/xnest/Screen.c +++ b/hw/xnest/Screen.c @@ -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) diff --git a/hw/xnest/Window.c b/hw/xnest/Window.c index f7e04844e..a8d65fb7c 100644 --- a/hw/xnest/Window.c +++ b/hw/xnest/Window.c @@ -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) { diff --git a/hw/xnest/XNWindow.h b/hw/xnest/XNWindow.h index cc49b2343..3a57646a7 100644 --- a/hw/xnest/XNWindow.h +++ b/hw/xnest/XNWindow.h @@ -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 */ |