diff options
Diffstat (limited to 'present')
-rw-r--r-- | present/present_request.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/present/present_request.c b/present/present_request.c index c6afe5fa7..f52efa52b 100644 --- a/present/present_request.c +++ b/present/present_request.c @@ -41,7 +41,19 @@ proc_present_query_version(ClientPtr client) }; REQUEST_SIZE_MATCH(xPresentQueryVersionReq); - (void) stuff; + /* From presentproto: + * + * The client sends the highest supported version to the server + * and the server sends the highest version it supports, but no + * higher than the requested version. + */ + + if (rep.majorVersion > stuff->majorVersion || + rep.minorVersion > stuff->minorVersion) { + rep.majorVersion = stuff->majorVersion; + rep.minorVersion = stuff->minorVersion; + } + if (client->swapped) { swaps(&rep.sequenceNumber); swapl(&rep.length); |