[PATCH 6/6] Xi: assume BadMode for non-BadMatch errors returned from SetDeviceMode.

Peter Hutterer peter.hutterer at who-t.net
Thu Jan 14 17:39:37 PST 2010


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 at who-t.net>
---
 Xi/setmode.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/Xi/setmode.c b/Xi/setmode.c
index 51e5767..cc9f7f5 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;
-- 
1.6.6



More information about the xorg-devel mailing list