Here's a slight tweak to that last patch.
Alan.
diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c diff --git a/hw/xfree86/common/xf86Cursor.c b/hw/xfree86/common/xf86Cursor.c index 61f0ce5..8bb12ae 100644 --- a/hw/xfree86/common/xf86Cursor.c +++ b/hw/xfree86/common/xf86Cursor.c @@ -213,6 +213,7 @@ xf86SwitchMode(ScreenPtr pScreen, Displa ScreenPtr pCursorScreen; Bool Switched; int px, py; + int sigstate; if (!pScr->vtSema || !mode || !pScr->SwitchMode) return FALSE; @@ -232,6 +233,7 @@ #endif if (pScreen == pCursorScreen) miPointerPosition(&px, &py); + sigstate = xf86BlockSIGIO (); xf86EnterServerState(SETUP); Switched = (*pScr->SwitchMode)(pScr->scrnIndex, mode, 0); xf86EnterServerState(OPERATING); @@ -269,6 +271,7 @@ #endif pScr->frameY1 = pScr->virtualY - 1; } } + xf86UnblockSIGIO (sigstate); if (pScr->AdjustFrame) (*pScr->AdjustFrame)(pScr->scrnIndex, pScr->frameX0, pScr->frameY0, 0); diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c diff --git a/hw/xfree86/os-support/xf86drm.h b/hw/xfree86/os-support/xf86drm.h