diff options
author | marha <marha@users.sourceforge.net> | 2013-07-29 08:51:48 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-07-29 08:51:48 +0200 |
commit | 04f3d1515878e535b7e3876264eaa4d43a1e6d54 (patch) | |
tree | 58867d9fa0097be91f1717a693a7ca4b3eb77d71 /xorg-server | |
parent | ff986553659472cf191804eadb13c21e8f2b44c0 (diff) | |
parent | 4c8cee9b5a37db30af50aafcbf54b36b9fd9e03a (diff) | |
download | vcxsrv-04f3d1515878e535b7e3876264eaa4d43a1e6d54.tar.gz vcxsrv-04f3d1515878e535b7e3876264eaa4d43a1e6d54.tar.bz2 vcxsrv-04f3d1515878e535b7e3876264eaa4d43a1e6d54.zip |
Merge remote-tracking branch 'origin/released'
* origin/released:
libX11 mesa xserver git update 29 July 2013
Diffstat (limited to 'xorg-server')
-rw-r--r-- | xorg-server/Xi/xiqueryversion.c | 36 | ||||
-rw-r--r-- | xorg-server/dix/getevents.c | 2 | ||||
-rw-r--r-- | xorg-server/dix/touch.c | 3 | ||||
-rw-r--r-- | xorg-server/include/inputstr.h | 2 |
4 files changed, 33 insertions, 10 deletions
diff --git a/xorg-server/Xi/xiqueryversion.c b/xorg-server/Xi/xiqueryversion.c index 057d019be..fe564a058 100644 --- a/xorg-server/Xi/xiqueryversion.c +++ b/xorg-server/Xi/xiqueryversion.c @@ -71,13 +71,37 @@ ProcXIQueryVersion(ClientPtr client) pXIClient = dixLookupPrivate(&client->devPrivates, XIClientPrivateKey); if (pXIClient->major_version) { - if (version_compare(stuff->major_version, stuff->minor_version, - pXIClient->major_version, pXIClient->minor_version) < 0) { - client->errorValue = stuff->major_version; - return BadValue; + + /* Check to see if the client has only ever asked + * for version 2.2 or higher + */ + if (version_compare(stuff->major_version, stuff->minor_version, 2, 2) >= 0 && + version_compare(pXIClient->major_version, pXIClient->minor_version, 2, 2) >= 0) + { + + /* As of version 2.2, Peter promises to never again break + * backward compatibility, so we'll return the requested + * version to the client but leave the server internal + * version set to the highest requested value + */ + major = stuff->major_version; + minor = stuff->minor_version; + if (version_compare(stuff->major_version, stuff->minor_version, + pXIClient->major_version, pXIClient->minor_version) > 0) + { + pXIClient->major_version = stuff->major_version; + pXIClient->minor_version = stuff->minor_version; + } + } else { + if (version_compare(stuff->major_version, stuff->minor_version, + pXIClient->major_version, pXIClient->minor_version) < 0) { + + client->errorValue = stuff->major_version; + return BadValue; + } + major = pXIClient->major_version; + minor = pXIClient->minor_version; } - major = pXIClient->major_version; - minor = pXIClient->minor_version; } else { if (version_compare(XIVersion.major_version, XIVersion.minor_version, stuff->major_version, stuff->minor_version) > 0) { diff --git a/xorg-server/dix/getevents.c b/xorg-server/dix/getevents.c index c12864460..dd99c2895 100644 --- a/xorg-server/dix/getevents.c +++ b/xorg-server/dix/getevents.c @@ -254,7 +254,7 @@ set_valuators(DeviceIntPtr dev, DeviceEvent *event, ValuatorMask *mask) SetBit(event->valuators.mode, i); event->valuators.data[i] = valuator_mask_get_double(mask, i); } - else if (valuator_get_mode(dev, i) == Absolute) + else event->valuators.data[i] = dev->valuator->axisVal[i]; } } diff --git a/xorg-server/dix/touch.c b/xorg-server/dix/touch.c index a4b6d7eea..a7ea213ba 100644 --- a/xorg-server/dix/touch.c +++ b/xorg-server/dix/touch.c @@ -895,8 +895,7 @@ TouchAddActiveGrabListener(DeviceIntPtr dev, TouchPointInfoPtr ti, if (!ti->emulate_pointer && grab->grabtype == XI2 && - (grab->type != XI_TouchBegin && grab->type != XI_TouchEnd && - grab->type != XI_TouchUpdate)) + !xi2mask_isset(grab->xi2mask, dev, XI_TouchBegin)) return; TouchAddGrabListener(dev, ti, ev, grab); diff --git a/xorg-server/include/inputstr.h b/xorg-server/include/inputstr.h index 85be885a0..2da72c1ec 100644 --- a/xorg-server/include/inputstr.h +++ b/xorg-server/include/inputstr.h @@ -195,7 +195,7 @@ typedef struct _GrabRec { unsigned keyboardMode:1; unsigned pointerMode:1; enum InputLevel grabtype; - CARD8 type; /* event type */ + CARD8 type; /* event type for passive grabs, 0 for active grabs */ DetailRec modifiersDetail; DeviceIntPtr modifierDevice; DetailRec detail; /* key or button */ |