diff options
author | faith <faith> | 2000-11-13 20:03:55 +0000 |
---|---|---|
committer | faith <faith> | 2000-11-13 20:03:55 +0000 |
commit | 24d6d9c0b99ead3d89c3c71f9598dd4522e59265 (patch) | |
tree | b417b1bd07861559837d1da23a310d0c1c344648 | |
parent | 457bf67444705b0f235147e1fc1e6f72171740a0 (diff) |
Mask VisibilityChange events when entering fullscreen mode
These sometimes (but not always) notify the client that the window
is completely obscured
-rw-r--r-- | xc/programs/Xserver/GL/dri/dri.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/xc/programs/Xserver/GL/dri/dri.c b/xc/programs/Xserver/GL/dri/dri.c index 8a1139435..2c54c8fb0 100644 --- a/xc/programs/Xserver/GL/dri/dri.c +++ b/xc/programs/Xserver/GL/dri/dri.c @@ -1771,6 +1771,8 @@ DRIOpenFullScreen(ScreenPtr pScreen, DrawablePtr pDrawable) ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; WindowPtr pWin = (WindowPtr)pDrawable; XF86DRIClipRectPtr pClipRects = (void *)REGION_RECTS(&pWin->clipList); + WindowOptPtr optional = pWin->optional; + Mask mask = pWin->eventMask; _DRIAdjustFrame(pScrn, pDRIPriv, pScrn->frameX0, pScrn->frameY0); @@ -1796,7 +1798,14 @@ DRIOpenFullScreen(ScreenPtr pScreen, DrawablePtr pDrawable) AddResource(pDrawable->id, DRIFullScreenResType, (pointer)pWin); xf86EnableVTSwitch(FALSE); + /* Turn off visibility change events for + the top window */ + pWin->eventMask &= ~VisibilityChangeMask; + pWin->optional = NULL; pScrn->EnableDisableFBAccess(pScreen->myNum, FALSE); + pWin->eventMask = mask; + pWin->optional = optional; + pScrn->vtSema = FALSE; pDRIPriv->fullscreen = pDrawable; DRIClipNotify(pWin, 0, 0); |