summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Xi/setmode.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/Xi/setmode.c b/Xi/setmode.c
index 51e57675f..ce2ad47c7 100644
--- a/Xi/setmode.c
+++ b/Xi/setmode.c
@@ -112,7 +112,17 @@ ProcXSetDeviceMode(ClientPtr client)
if (rep.status == Success)
dev->valuator->mode = stuff->mode;
else if (rep.status != AlreadyGrabbed)
+ {
+ switch(rep.status) {
+ case BadMatch:
+ case BadImplementation:
+ case BadAlloc:
+ break;
+ default:
+ rep.status = BadMode;
+ }
return rep.status;
+ }
WriteReplyToClient(client, sizeof(xSetDeviceModeReply), &rep);
return Success;