diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2010-01-11 16:35:36 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2010-02-02 15:25:40 +1000 |
commit | 635e760c6e87e14c402b73e5389714c2aded8424 (patch) | |
tree | 9508ac1534a67424e681e4ec75a320d95f5e9f91 | |
parent | 820ed0f3d4b7b5fc2374be16af24b5c1fc8e124d (diff) |
Xi: assume BadMode for non-BadMatch errors returned from SetDeviceMode.1.8-fixes
The XI protocol spec only allows for two errors on the SetDeviceMode
requests: BadMatch or BadMode. BadMode however is a dynamically assigned
extension error and the driver doesn't have access to the actual error
number. Hence, if a SetDeviceMode driver returns an error other than
BadMatch, assume BadMode.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | Xi/setmode.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Xi/setmode.c b/Xi/setmode.c index 51e57675f..cc9f7f501 100644 --- a/Xi/setmode.c +++ b/Xi/setmode.c @@ -112,7 +112,11 @@ ProcXSetDeviceMode(ClientPtr client) if (rep.status == Success) dev->valuator->mode = stuff->mode; else if (rep.status != AlreadyGrabbed) + { + if (rep.status != BadMatch) + rep.status = BadMode; return rep.status; + } WriteReplyToClient(client, sizeof(xSetDeviceModeReply), &rep); return Success; |