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:50:33 +0100 |
commit | 7a995802b3ca11b741b23cc267639b548867cb70 (patch) | |
tree | f21cbca9a292ed74a76ac995d23a7afa5b5fd518 | |
parent | 470237576445f590c6d0b811e2891ea2e62747cf (diff) |
Block IO on switchmode just as we do for VT switching
to avoid cursor movements signalling io.
(cherry picked from cf948b7b04dfeb61a294889027b9a54f6b9b478e commit)
-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); |