diff options
Diffstat (limited to 'xorg-server/Xi/exevents.c')
-rw-r--r-- | xorg-server/Xi/exevents.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c index dff0a92b0..4e180d755 100644 --- a/xorg-server/Xi/exevents.c +++ b/xorg-server/Xi/exevents.c @@ -80,6 +80,8 @@ SOFTWARE. #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> +#else +#define XINPUT #endif #include "inputstr.h" @@ -1019,7 +1021,7 @@ DeliverOneTouchEvent(ClientPtr client, DeviceIntPtr dev, TouchPointInfoPtr ti, err = EventToXI2(ev, &xi2); if (err != Success) FatalError("[Xi] %s: XI2 conversion failed in %s" - " (%d)\n", dev->name, __func__, err); + " (%d)\n", dev->name, __FUNCTION__, err); FixUpEventFromWindow(&ti->sprite, xi2, win, child, FALSE); filter = GetEventFilter(dev, xi2); @@ -1644,7 +1646,7 @@ ProcessBarrierEvent(InternalEvent *e, DeviceIntPtr dev) rc = EventToXI2(e, &ev); if (rc != Success) { - ErrorF("[Xi] event conversion from %s failed with code %d\n", __func__, rc); + ErrorF("[Xi] event conversion from %s failed with code %d\n", __FUNCTION__, rc); return; } @@ -1684,7 +1686,7 @@ ProcessDeviceEvent(InternalEvent *ev, DeviceIntPtr device) if (IsPointerDevice(device)) { kbd = GetMaster(device, KEYBOARD_OR_FLOAT); mouse = device; - if (!kbd->key) /* can happen with floating SDs */ + if (kbd && !kbd->key) /* can happen with floating SDs */ kbd = NULL; } else { @@ -1714,6 +1716,8 @@ ProcessDeviceEvent(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; @@ -2520,6 +2524,10 @@ RecalculateDeviceDeliverableEvents(WindowPtr pWin) } } +#ifdef _MSC_VER +#pragma warning(disable:4715) /* Not all control paths return a value */ +#endif + int InputClientGone(WindowPtr pWin, XID id) { |