diff options
author | Alan Hourihane <alanh@fairlite.demon.co.uk> | 2006-10-13 14:48:10 +0100 |
---|---|---|
committer | Alan Hourihane <alanh@fairlite.demon.co.uk> | 2006-10-13 14:48:10 +0100 |
commit | cf948b7b04dfeb61a294889027b9a54f6b9b478e (patch) | |
tree | 140dc4da2cdd73fd4c7c28bc71c09527ab7322b4 | |
parent | a6df780e4d3f90cc699b0b864bade03d6f15afd7 (diff) |
Block IO on switchmode just as we do for VT switching
to avoid cursor movements signalling io.
-rw-r--r-- | hw/xfree86/common/xf86Cursor.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/xfree86/common/xf86Cursor.c b/hw/xfree86/common/xf86Cursor.c index 61f0ce55e..8bb12ae33 100644 --- a/hw/xfree86/common/xf86Cursor.c +++ b/hw/xfree86/common/xf86Cursor.c @@ -213,6 +213,7 @@ xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode) ScreenPtr pCursorScreen; Bool Switched; int px, py; + int sigstate; if (!pScr->vtSema || !mode || !pScr->SwitchMode) return FALSE; @@ -232,6 +233,7 @@ xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode) if (pScreen == pCursorScreen) miPointerPosition(&px, &py); + sigstate = xf86BlockSIGIO (); xf86EnterServerState(SETUP); Switched = (*pScr->SwitchMode)(pScr->scrnIndex, mode, 0); xf86EnterServerState(OPERATING); @@ -269,6 +271,7 @@ xf86SwitchMode(ScreenPtr pScreen, DisplayModePtr mode) pScr->frameY1 = pScr->virtualY - 1; } } + xf86UnblockSIGIO (sigstate); if (pScr->AdjustFrame) (*pScr->AdjustFrame)(pScr->scrnIndex, pScr->frameX0, pScr->frameY0, 0); |