Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP2:GA
xkbcomp
U_Ignore-xkb_keycodes.maximum-of-255.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File U_Ignore-xkb_keycodes.maximum-of-255.patch of Package xkbcomp
From 5bc2849273a224a2df593b7e8df31f0bde666482 Mon Sep 17 00:00:00 2001 From: Peter Hutterer <peter.hutterer@who-t.net> Date: Thu, 7 Jun 2018 11:25:01 +1000 Subject: [PATCH] Ignore xkb_keycodes.maximum of > 255 Continuation from 7fdfabd75 "keycodes: Ignore high keycodes" A keymap with a key > 255 will have a xkb_keycodes.maximum of that keycode. Let's not throw a fatal error on that, just crop it back to the maximum of 255. This doesn't set the "high_keycode_warned" on purpose so we get this for the first key that actually matters. Reproducible with xkeyboard-config 2.24 which has a maximum of 374. https://bugzilla.redhat.com/show_bug.cgi?id=1587998 Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org> --- keycodes.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/keycodes.c b/keycodes.c index d5ac762..c21f7c4 100644 --- a/keycodes.c +++ b/keycodes.c @@ -663,7 +663,7 @@ HandleKeyNameVar(VarDef * stmt, KeyNamesInfo * info) ACTION1("Assignment to field %s ignored\n", field.str); return 0; } - if ((tmp.ival < XkbMinLegalKeyCode) || (tmp.ival > XkbMaxLegalKeyCode)) + if ((tmp.ival < XkbMinLegalKeyCode)) { ERROR3 ("Illegal keycode %d (must be in the range %d-%d inclusive)\n", @@ -671,6 +671,14 @@ HandleKeyNameVar(VarDef * stmt, KeyNamesInfo * info) ACTION1("Value of \"%s\" not changed\n", field.str); return 0; } + if ((tmp.ival > XkbMaxLegalKeyCode)) + { + WARN2("Unsupported maximum keycode %d, clipping.\n", tmp.ival); + ACTION2("X11 cannot support keycodes above 255.\n"); + info->explicitMax = XkbMaxLegalKeyCode; + info->effectiveMax = XkbMaxLegalKeyCode; + return 1; + } if (which == MIN_KEYCODE_DEF) { if ((info->explicitMax > 0) && (info->explicitMax < tmp.ival)) -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor