diff options
Diffstat (limited to 'xorg-server/Xi')
-rw-r--r-- | xorg-server/Xi/exevents.c | 12 | ||||
-rw-r--r-- | xorg-server/Xi/makefile | 55 | ||||
-rw-r--r-- | xorg-server/Xi/opendev.c | 3 |
3 files changed, 65 insertions, 5 deletions
diff --git a/xorg-server/Xi/exevents.c b/xorg-server/Xi/exevents.c index c05c22604..d6575c597 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" @@ -1043,7 +1045,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); @@ -1640,7 +1642,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 { @@ -1670,6 +1672,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; @@ -2678,6 +2682,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) { diff --git a/xorg-server/Xi/makefile b/xorg-server/Xi/makefile new file mode 100644 index 000000000..a466c84f0 --- /dev/null +++ b/xorg-server/Xi/makefile @@ -0,0 +1,55 @@ +CSRCS=allowev.c \ + chgdctl.c \ + chgfctl.c \ + chgkbd.c \ + chgkmap.c \ + chgprop.c \ + chgptr.c \ + closedev.c \ + devbell.c \ + exevents.c \ + extinit.c \ + getbmap.c \ + getdctl.c \ + getfctl.c \ + getfocus.c \ + getkmap.c \ + getmmap.c \ + getprop.c \ + getselev.c \ + getvers.c \ + grabdev.c \ + grabdevb.c \ + grabdevk.c \ + gtmotion.c \ + listdev.c \ + opendev.c \ + queryst.c \ + selectev.c \ + sendexev.c \ + setbmap.c \ + setdval.c \ + setfocus.c \ + setmmap.c \ + setmode.c \ + ungrdev.c \ + ungrdevb.c \ + ungrdevk.c \ + xiallowev.c \ + xichangecursor.c \ + xichangehierarchy.c \ + xigetclientpointer.c \ + xigrabdev.c \ + xipassivegrab.c \ + xiproperty.c \ + xiquerydevice.c \ + xiquerypointer.c \ + xiqueryversion.c \ + xiselectev.c \ + xisetclientpointer.c \ + xisetdevfocus.c \ + xiwarppointer.c \ + stubs.c + +LIBRARY=libXi + diff --git a/xorg-server/Xi/opendev.c b/xorg-server/Xi/opendev.c index e7c00a236..27a959d85 100644 --- a/xorg-server/Xi/opendev.c +++ b/xorg-server/Xi/opendev.c @@ -114,9 +114,6 @@ ProcXOpenDevice(ClientPtr client) if (IsMaster(dev)) return BadDevice; - if (status != Success) - return status; - memset(&rep, 0, sizeof(xOpenDeviceReply)); rep.repType = X_Reply; rep.RepType = X_OpenDevice; |