Bug#390646: xserver-xorg: Server crash when switching back from full screen mode
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
Reply to: