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
|
autoreconf --force -v --install || exit 1
|
||||||
cd $ORIGDIR || exit $?
|
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)
|
if (*prev != dev)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
TouchEndPhysicallyActiveTouches(dev);
|
||||||
ReleaseButtonsAndKeys(dev);
|
ReleaseButtonsAndKeys(dev);
|
||||||
SyncRemoveDeviceIdleTime(dev->idle_counter);
|
SyncRemoveDeviceIdleTime(dev->idle_counter);
|
||||||
dev->idle_counter = NULL;
|
dev->idle_counter = NULL;
|
||||||
|
|
|
@ -179,7 +179,7 @@ UngrabAllDevices(Bool kill_client)
|
||||||
continue;
|
continue;
|
||||||
PrintDeviceGrabInfo(dev);
|
PrintDeviceGrabInfo(dev);
|
||||||
client = clients[CLIENT_ID(dev->deviceGrab.grab->resource)];
|
client = clients[CLIENT_ID(dev->deviceGrab.grab->resource)];
|
||||||
if (!client || client->clientGone)
|
if (!kill_client || !client || client->clientGone)
|
||||||
dev->deviceGrab.DeactivateGrab(dev);
|
dev->deviceGrab.DeactivateGrab(dev);
|
||||||
if (kill_client)
|
if (kill_client)
|
||||||
CloseDownClient(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);
|
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> */
|
/* Tolerate prior #include <linux/input.h> */
|
||||||
#if defined(linux) && defined(_INPUT_H)
|
#if defined(linux)
|
||||||
#undef BUS_NONE
|
#undef BUS_NONE
|
||||||
#undef BUS_PCI
|
#undef BUS_PCI
|
||||||
#undef BUS_SBUS
|
#undef BUS_SBUS
|
||||||
|
|
|
@ -579,6 +579,7 @@ extern int TouchListenerAcceptReject(DeviceIntPtr dev, TouchPointInfoPtr ti,
|
||||||
int listener, int mode);
|
int listener, int mode);
|
||||||
extern int TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode,
|
extern int TouchAcceptReject(ClientPtr client, DeviceIntPtr dev, int mode,
|
||||||
uint32_t touchid, Window grab_window, XID *error);
|
uint32_t touchid, Window grab_window, XID *error);
|
||||||
|
extern void TouchEndPhysicallyActiveTouches(DeviceIntPtr dev);
|
||||||
|
|
||||||
/* misc event helpers */
|
/* misc event helpers */
|
||||||
extern Mask GetEventMask(DeviceIntPtr dev, xEvent *ev, InputClientsPtr clients);
|
extern Mask GetEventMask(DeviceIntPtr dev, xEvent *ev, InputClientsPtr clients);
|
||||||
|
|
Loading…
Reference in New Issue