diff options
author | Ulrich Sibiller <uli42@gmx.de> | 2017-07-22 15:26:11 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2017-12-14 00:08:33 +0100 |
commit | 8b206a261c97817adf951a272035c2202f440765 (patch) | |
tree | 5a434724f575f6614e4d76da4ba11b0249aa2d23 | |
parent | 1e1ea1ceae43cba0744f1c277d2fe7a6a547cf70 (diff) | |
download | nx-libs-8b206a261c97817adf951a272035c2202f440765.tar.gz nx-libs-8b206a261c97817adf951a272035c2202f440765.tar.bz2 nx-libs-8b206a261c97817adf951a272035c2202f440765.zip |
Keyboard.c: Make xkblock more robust
If xorg upstream xkb gets extended one day the previous code would not
block new xkb calls even if they would change keyboard settings. So
only act on the currently known calls and throw an error for all
unknown calls.
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 565153f84..22cf1b44d 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -1600,11 +1600,31 @@ int ProcXkbInhibited(register ClientPtr client) { return BadAccess; } - default: + case X_kbBell: + case X_kbGetCompatMap: + case X_kbGetControls: + case X_kbGetDeviceInfo: + case X_kbGetGeometry: + case X_kbGetIndicatorMap: + case X_kbGetIndicatorState: + case X_kbGetMap: + case X_kbGetNamedIndicator: + case X_kbGetNames: + case X_kbGetState: + case X_kbListComponents: + case X_kbPerClientFlags: + case X_kbSelectEvents: + case X_kbSetDeviceInfo: + case X_kbUseExtension: { return (client->swapped ? nxagentXkbWrapper.SProcXkbDispatchBackup(client) : nxagentXkbWrapper.ProcXkbDispatchBackup(client)); } + default: + { + /* Just make sure that it works in case xkb gets extended in future */ + return BadImplementation; + } } } |