Merge remote-tracking branch 'whot/for-keith'
This commit is contained in:
commit
abc2ef590c
|
@ -9,4 +9,6 @@ cd $srcdir
|
|||
autoreconf --force -v --install || exit 1
|
||||
cd $ORIGDIR || exit $?
|
||||
|
||||
$srcdir/configure "$@"
|
||||
if test -z "$NOCONFIGURE"; then
|
||||
exec $srcdir/configure "$@"
|
||||
fi
|
||||
|
|
|
@ -443,6 +443,7 @@ DisableDevice(DeviceIntPtr dev, BOOL sendevent)
|
|||
if (*prev != dev)
|
||||
return FALSE;
|
||||
|
||||
TouchEndPhysicallyActiveTouches(dev);
|
||||
ReleaseButtonsAndKeys(dev);
|
||||
SyncRemoveDeviceIdleTime(dev->idle_counter);
|
||||
dev->idle_counter = NULL;
|
||||
|
|
|
@ -179,7 +179,7 @@ UngrabAllDevices(Bool kill_client)
|
|||
continue;
|
||||
PrintDeviceGrabInfo(dev);
|
||||
client = clients[CLIENT_ID(dev->deviceGrab.grab->resource)];
|
||||
if (!client || client->clientGone)
|
||||
if (!kill_client || !client || client->clientGone)
|
||||
dev->deviceGrab.DeactivateGrab(dev);
|
||||
if (kill_client)
|
||||
CloseDownClient(client);
|
||||
|
|
28
dix/touch.c
28
dix/touch.c
|
@ -1029,3 +1029,31 @@ TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode,
|
|||
|
||||
return TouchListenerAcceptReject(dev, ti, i, mode);
|
||||
}
|
||||
|
||||
/**
|
||||
* End physically active touches for a device.
|
||||
*/
|
||||
void
|
||||
TouchEndPhysicallyActiveTouches(DeviceIntPtr dev)
|
||||
{
|
||||
InternalEvent *eventlist = InitEventList(GetMaximumEventsNum());
|
||||
int i;
|
||||
|
||||
OsBlockSignals();
|
||||
mieqProcessInputEvents();
|
||||
for (i = 0; i < dev->last.num_touches; i++) {
|
||||
DDXTouchPointInfoPtr ddxti = dev->last.touches + i;
|
||||
|
||||
if (ddxti->active) {
|
||||
int j;
|
||||
int nevents = GetTouchEvents(eventlist, dev, ddxti->ddx_id,
|
||||
XI_TouchEnd, 0, NULL);
|
||||
|
||||
for (j = 0; j < nevents; j++)
|
||||
mieqProcessDeviceEvent(dev, eventlist + j, NULL);
|
||||
}
|
||||
}
|
||||
OsReleaseSignals();
|
||||
|
||||
FreeEventList(eventlist, GetMaximumEventsNum());
|
||||
}
|
||||
|
|
|
@ -347,7 +347,7 @@ typedef struct _DriverRec {
|
|||
*/
|
||||
|
||||
/* Tolerate prior #include <linux/input.h> */
|
||||
#if defined(linux) && defined(_INPUT_H)
|
||||
#if defined(linux)
|
||||
#undef BUS_NONE
|
||||
#undef BUS_PCI
|
||||
#undef BUS_SBUS
|
||||
|
|
|
@ -579,6 +579,7 @@ extern int TouchListenerAcceptReject(DeviceIntPtr dev, TouchPointInfoPtr ti,
|
|||
int listener, int mode);
|
||||
extern int TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode,
|
||||
uint32_t touchid, Window grab_window, XID *error);
|
||||
extern void TouchEndPhysicallyActiveTouches(DeviceIntPtr dev);
|
||||
|
||||
/* misc event helpers */
|
||||
extern Mask GetEventMask(DeviceIntPtr dev, xEvent *ev, InputClientsPtr clients);
|
||||
|
|
Loading…
Reference in New Issue