summaryrefslogtreecommitdiff
path: root/mi/mipointer.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2008-05-21 16:25:35 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2008-05-21 16:25:35 +0930
commit7509fb498c02fe1cebe4139612b8871ec877c130 (patch)
treee44b82ddaea88a1fc551f8f772a7da1b5cbb0fc1 /mi/mipointer.c
parent2ae3bed33731d800bb28a968e3a1c8066d179740 (diff)
parentdfb7de6571345061d1cd88ab915064fc376529fd (diff)
Merge branch 'hwcursor' into mpx
Diffstat (limited to 'mi/mipointer.c')
-rw-r--r--mi/mipointer.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/mi/mipointer.c b/mi/mipointer.c
index 0d5c98419..e49b3df50 100644
--- a/mi/mipointer.c
+++ b/mi/mipointer.c
@@ -530,7 +530,11 @@ miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y,
pPointer = MIPOINTER(pDev);
- if (pDev && pDev->coreEvents
+ /* Hack: We mustn't call into ->MoveCursor for anything but the
+ * VCP, as this may cause a non-HW rendered cursor to be rendered during
+ * SIGIO. This again leads to allocs during SIGIO which leads to SIGABRT.
+ */
+ if ((pDev == inputInfo.pointer || (!pDev->isMaster && pDev->u.master == inputInfo.pointer))
&& !pScreenPriv->waitForUpdate && pScreen == pPointer->pSpriteScreen)
{
pPointer->devx = x;