aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/Xi/exevents.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2010-05-18 15:49:32 +0000
committermarha <marha@users.sourceforge.net>2010-05-18 15:49:32 +0000
commita8abf2e386861592ef6252451eebbeef9e8e40e6 (patch)
tree07af56804d5e4359e0b14bd35aefb75b92883a37 /xorg-server/Xi/exevents.c
parentdf3634f34f1c14f6bbdc66d9e54478384fd93eae (diff)
downloadvcxsrv-a8abf2e386861592ef6252451eebbeef9e8e40e6.tar.gz
vcxsrv-a8abf2e386861592ef6252451eebbeef9e8e40e6.tar.bz2
vcxsrv-a8abf2e386861592ef6252451eebbeef9e8e40e6.zip
Solved crash in closing down
Diffstat (limited to 'xorg-server/Xi/exevents.c')
-rw-r--r--xorg-server/Xi/exevents.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c
index 94c9fd709..dd2d4739b 100644
--- a/xorg-server/Xi/exevents.c
+++ b/xorg-server/Xi/exevents.c
@@ -928,6 +928,7 @@ ProcessRawEvent(RawDeviceEvent *ev, DeviceIntPtr device)
}
for (i = 0; i < screenInfo.numScreens; i++)
+ if (WindowTable[i])
DeliverEventsToWindow(device, WindowTable[i], xi, 1,
GetEventFilter(device, xi), NULL);
free(xi);
@@ -969,7 +970,7 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device)
{
kbd = GetPairedDevice(device);
mouse = device;
- if (!kbd->key) /* can happen with floating SDs */
+ if (kbd && !kbd->key) /* can happen with floating SDs */
kbd = NULL;
} else
{
@@ -1027,6 +1028,8 @@ ProcessOtherEvent(InternalEvent *ev, DeviceIntPtr device)
case ET_KeyRelease:
case ET_ProximityIn:
case ET_ProximityOut:
+ if (!device->spriteInfo->sprite)
+ return;
GetSpritePosition(device, &rootX, &rootY);
event->root_x = rootX;
event->root_y = rootY;