Merge remote-tracking branch 'whot/for-keith'

This commit is contained in:
Keith Packard 2012-11-01 13:38:54 -07:00
commit a194630f7f
8 changed files with 20 additions and 7 deletions

View File

@ -126,7 +126,8 @@ ProcXChangeDeviceControl(ClientPtr client)
.repType = X_Reply,
.RepType = X_ChangeDeviceControl,
.sequenceNumber = client->sequence,
.length = 0
.length = 0,
.status = Success,
};
switch (stuff->control) {

View File

@ -1862,6 +1862,11 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev,
goto out;
}
if (listener->state == LISTENER_AWAITING_BEGIN) {
listener->state = LISTENER_HAS_END;
goto out;
}
/* Event in response to reject */
if (ev->device_event.flags & TOUCH_REJECT) {
if (listener->state != LISTENER_HAS_END)

View File

@ -105,6 +105,9 @@ static struct dev_properties {
{0, AXIS_LABEL_PROP_ABS_MT_BLOB_ID},
{0, AXIS_LABEL_PROP_ABS_MT_TRACKING_ID},
{0, AXIS_LABEL_PROP_ABS_MT_PRESSURE},
{0, AXIS_LABEL_PROP_ABS_MT_DISTANCE},
{0, AXIS_LABEL_PROP_ABS_MT_TOOL_X},
{0, AXIS_LABEL_PROP_ABS_MT_TOOL_Y},
{0, AXIS_LABEL_PROP_ABS_MISC},
{0, BTN_LABEL_PROP},
{0, BTN_LABEL_PROP_BTN_UNKNOWN},

View File

@ -1400,8 +1400,9 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
coordinates were.
*/
if (flags & POINTER_SCREEN) {
screenx = sx;
screeny = sy;
scr = miPointerGetScreen(pDev);
screenx = sx + scr->x;
screeny = sy + scr->y;
}
scr = positionSprite(pDev, (flags & POINTER_ABSOLUTE) ? Absolute : Relative,

View File

@ -572,8 +572,8 @@ TouchBuildSprite(DeviceIntPtr sourcedev, TouchPointInfoPtr ti,
return FALSE;
/* Mark which grabs/event selections we're delivering to: max one grab per
* window plus the bottom-most event selection. */
ti->listeners = calloc(sprite->spriteTraceGood + 1, sizeof(*ti->listeners));
* window plus the bottom-most event selection, plus any active grab. */
ti->listeners = calloc(sprite->spriteTraceGood + 2, sizeof(*ti->listeners));
if (!ti->listeners) {
sprite->spriteTraceGood = 0;
return FALSE;

View File

@ -376,7 +376,7 @@ static void
xf86ReleaseKeys(DeviceIntPtr pDev)
{
KeyClassPtr keyc;
int i, sigstate;
int i;
if (!pDev || !pDev->key)
return;

View File

@ -118,6 +118,9 @@
#define AXIS_LABEL_PROP_ABS_MT_BLOB_ID "Abs MT Blob ID"
#define AXIS_LABEL_PROP_ABS_MT_TRACKING_ID "Abs MT Tracking ID"
#define AXIS_LABEL_PROP_ABS_MT_PRESSURE "Abs MT Pressure"
#define AXIS_LABEL_PROP_ABS_MT_DISTANCE "Abs MT Distance"
#define AXIS_LABEL_PROP_ABS_MT_TOOL_X "Abs MT Tool X"
#define AXIS_LABEL_PROP_ABS_MT_TOOL_Y "Abs MT Tool Y"
#define AXIS_LABEL_PROP_ABS_MISC "Abs Misc"
/* Button names */

View File

@ -709,7 +709,7 @@ ProcessPointerEvent(InternalEvent *ev, DeviceIntPtr mouse)
xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(mouse);
DeviceEvent *event = &ev->device_event;
dev = IsFloating(mouse) ? mouse : GetMaster(mouse, MASTER_KEYBOARD);
dev = (IsMaster(mouse) || IsFloating(mouse)) ? mouse : GetMaster(mouse, MASTER_KEYBOARD);
if (dev && dev->key) {
xkbi = dev->key->xkbInfo;