configure.ac | 4 - src/bsd_KbdMap.c | 30 ++++++-- src/kbd.c | 189 +++++++++++++++++++------------------------------------ 3 files changed, 92 insertions(+), 131 deletions(-)
New commits: commit 0c7f51291f91eee61fcaf05080001a5e9b22fb53 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Nov 17 14:21:48 2016 +1000 keyboard 1.9.0 Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 993d5a8..c3ebdf3 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xf86-input-keyboard], - [1.8.1], + [1.9.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [xf86-input-keyboard]) AC_CONFIG_SRCDIR([Makefile.am]) commit 157e0631b12d0aae4a5f38b81bee615a7eaf553f Author: Keith Packard <kei...@keithp.com> Date: Mon May 30 01:27:49 2016 -0700 Use xf86AddEnabledDevice with threaded input We didn't use SIGIO input for keyboard processing, but we can use threaded input. Signed-off-by: Keith Packard <kei...@keithp.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/kbd.c b/src/kbd.c index e378dcc..be6948c 100644 --- a/src/kbd.c +++ b/src/kbd.c @@ -45,6 +45,10 @@ #include "xkbstr.h" #include "xkbsrv.h" +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 23 +#define HAVE_THREADED_INPUT 1 +#endif + #define CAPSFLAG 1 #define NUMFLAG 2 #define SCROLLFLAG 4 @@ -352,7 +356,11 @@ KbdProc(DeviceIntPtr device, int what) */ if (pInfo->fd >= 0) { xf86FlushInput(pInfo->fd); +#if HAVE_THREADED_INPUT + xf86AddEnabledDevice(pInfo); +#else AddEnabledDevice(pInfo->fd); +#endif } device->public.on = TRUE; @@ -365,8 +373,13 @@ KbdProc(DeviceIntPtr device, int what) /* * Restore original keyboard directness and translation. */ - if (pInfo->fd != -1) + if (pInfo->fd != -1) { +#if HAVE_THREADED_INPUT + xf86RemoveEnabledDevice(pInfo); +#else RemoveEnabledDevice(pInfo->fd); +#endif + } pKbd->KbdOff(pInfo, what); device->public.on = FALSE; break; commit 9ab899863a61b800d58e078e936c0d8d88bc0893 Author: Alexandr Shadchin <alexandr.shadc...@gmail.com> Date: Tue Nov 24 12:46:44 2015 +0500 Remove support for X input ABI < 12 Signed-off-by: Alexandr Shadchin <alexandr.shadc...@gmail.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/configure.ac b/configure.ac index 6fd6576..993d5a8 100644 --- a/configure.ac +++ b/configure.ac @@ -44,7 +44,7 @@ XORG_MACROS_VERSION(1.8) XORG_DEFAULT_OPTIONS # Obtain compiler/linker options from server and required extensions -PKG_CHECK_MODULES(XORG, [xorg-server >= 1.4] xproto inputproto) +PKG_CHECK_MODULES(XORG, [xorg-server >= 1.10] xproto inputproto) # Define a configure option for an alternate input module directory AC_ARG_WITH(xorg-module-dir, diff --git a/src/kbd.c b/src/kbd.c index 1ce4ee6..e378dcc 100644 --- a/src/kbd.c +++ b/src/kbd.c @@ -53,11 +53,7 @@ /* Used to know when the first DEVICE_ON after a DEVICE_INIT is called */ #define INITFLAG (1U << 31) -#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 -static InputInfoPtr KbdPreInit(InputDriverPtr drv, IDevPtr dev, int flags); -#else static int KbdPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags); -#endif static int KbdProc(DeviceIntPtr device, int what); static void KbdCtrl(DeviceIntPtr device, KeybdCtrl *ctrl); static void KbdBell(int percent, DeviceIntPtr dev, pointer ctrl, int unused); @@ -132,43 +128,8 @@ _X_EXPORT XF86ModuleData kbdModuleData = { NULL }; -#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 -static int -NewKbdPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags); - -static InputInfoPtr -KbdPreInit(InputDriverPtr drv, IDevPtr dev, int flags) -{ - InputInfoPtr pInfo; - - if (!(pInfo = xf86AllocateInput(drv, 0))) - return NULL; - - pInfo->name = dev->identifier; - pInfo->flags = XI86_KEYBOARD_CAPABLE; - pInfo->conversion_proc = NULL; - pInfo->reverse_conversion_proc = NULL; - pInfo->private_flags = 0; - pInfo->always_core_feedback = NULL; - pInfo->conf_idev = dev; - pInfo->close_proc = NULL; - - if (NewKbdPreInit(drv, pInfo, flags) == Success) - { - pInfo->flags |= XI86_CONFIGURED; - return pInfo; - } - - xf86DeleteInput(pInfo, 0); - return NULL; -} - -static int -NewKbdPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) -#else static int KbdPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) -#endif { KbdDevPtr pKbd; char *s; @@ -189,11 +150,7 @@ KbdPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) pInfo->dev = NULL; defaults = kbdDefaults; - xf86CollectInputOptions(pInfo, defaults -#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 - , NULL -#endif - ); + xf86CollectInputOptions(pInfo, defaults); xf86ProcessCommonOptions(pInfo, pInfo->options); if (!(pKbd = calloc(sizeof(KbdDevRec), 1))) { @@ -335,6 +292,7 @@ KbdProc(DeviceIntPtr device, int what) InputInfoPtr pInfo = device->public.devicePrivate; KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; + XkbRMLVOSet rmlvo; KeySymsRec keySyms; CARD8 modMap[MAP_LENGTH]; int ret; @@ -348,23 +306,19 @@ KbdProc(DeviceIntPtr device, int what) pKbd->KbdGetMapping(pInfo, &keySyms, modMap); device->public.on = FALSE; -#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 5 + rmlvo.rules = xkb_rules; + rmlvo.model = xkb_model; + rmlvo.layout = xkb_layout; + rmlvo.variant = xkb_variant; + rmlvo.options = xkb_options; + + if (!InitKeyboardDeviceStruct(device, &rmlvo, KbdBell, KbdCtrl)) { - XkbRMLVOSet rmlvo; - rmlvo.rules = xkb_rules; - rmlvo.model = xkb_model; - rmlvo.layout = xkb_layout; - rmlvo.variant = xkb_variant; - rmlvo.options = xkb_options; - - if (!InitKeyboardDeviceStruct(device, &rmlvo, KbdBell, KbdCtrl)) - { - xf86Msg(X_ERROR, "%s: Keyboard initialization failed. This " - "could be a missing or incorrect setup of " - "xkeyboard-config.\n", device->name); + xf86Msg(X_ERROR, "%s: Keyboard initialization failed. This " + "could be a missing or incorrect setup of " + "xkeyboard-config.\n", device->name); - return BadValue; - } + return BadValue; } # ifdef XI_PROP_DEVICE_NODE { @@ -381,17 +335,6 @@ KbdProc(DeviceIntPtr device, int what) } } # endif /* XI_PROP_DEVICE_NODE */ -#else - { - XkbComponentNamesRec xkbnames; - memset(&xkbnames, 0, sizeof(xkbnames)); - XkbSetRulesDflts(xkb_rules, xkb_model, xkb_layout, - xkb_variant, xkb_options); - XkbInitKeyboardDeviceStruct(device, &xkbnames, &keySyms, - modMap, KbdBell, - (KbdCtrlProcPtr)KbdCtrl); - } -#endif /* XINPUT ABI 5*/ InitKBD(pInfo, TRUE); break; case DEVICE_ON: commit 0317028c2bd0bfd06efd3c1f192ff9a494757187 Author: Alexandr Shadchin <alexandr.shadc...@gmail.com> Date: Tue Nov 24 12:46:43 2015 +0500 Reorder load module stuff Signed-off-by: Alexandr Shadchin <alexandr.shadc...@gmail.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/kbd.c b/src/kbd.c index 4db2e0a..1ce4ee6 100644 --- a/src/kbd.c +++ b/src/kbd.c @@ -66,24 +66,6 @@ static void PostKbdEvent(InputInfoPtr pInfo, unsigned int key, Bool down); static void InitKBD(InputInfoPtr pInfo, Bool init); static void UpdateLeds(InputInfoPtr pInfo); -_X_EXPORT InputDriverRec KBD = { - 1, - "kbd", - NULL, - KbdPreInit, - NULL, - NULL -}; - -_X_EXPORT InputDriverRec KEYBOARD = { - 1, - "keyboard", - NULL, - KbdPreInit, - NULL, - NULL -}; - static const char *kbdDefaults[] = { #ifdef __NetBSD__ #ifdef DEFAULT_TO_WSKBD @@ -106,6 +88,50 @@ static char *xkb_layout; static char *xkb_variant; static char *xkb_options; +_X_EXPORT InputDriverRec KBD = { + 1, + "kbd", + NULL, + KbdPreInit, + NULL, + NULL +}; + +_X_EXPORT InputDriverRec KEYBOARD = { + 1, + "keyboard", + NULL, + KbdPreInit, + NULL, + NULL +}; + +static XF86ModuleVersionInfo xf86KbdVersionRec = { + "kbd", + MODULEVENDORSTRING, + MODINFOSTRING1, + MODINFOSTRING2, + XORG_VERSION_CURRENT, + PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL, + ABI_CLASS_XINPUT, + ABI_XINPUT_VERSION, + MOD_CLASS_XINPUT, + {0, 0, 0, 0} +}; + +static pointer +xf86KbdPlug(pointer module, pointer options, int *errmaj, int *errmin) +{ + xf86AddInputDriver(&KBD, module, 0); + return module; +} + +_X_EXPORT XF86ModuleData kbdModuleData = { + &xf86KbdVersionRec, + xf86KbdPlug, + NULL +}; + #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12 static int NewKbdPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags); @@ -451,35 +477,3 @@ PostKbdEvent(InputInfoPtr pInfo, unsigned int scanCode, Bool down) xf86PostKeyboardEvent(device, scanCode + MIN_KEYCODE, down); } - -static pointer -xf86KbdPlug(pointer module, - pointer options, - int *errmaj, - int *errmin) -{ - xf86AddInputDriver(&KBD, module, 0); - - return module; -} - -static XF86ModuleVersionInfo xf86KbdVersionRec = -{ - "kbd", - MODULEVENDORSTRING, - MODINFOSTRING1, - MODINFOSTRING2, - XORG_VERSION_CURRENT, - PACKAGE_VERSION_MAJOR, PACKAGE_VERSION_MINOR, PACKAGE_VERSION_PATCHLEVEL, - ABI_CLASS_XINPUT, - ABI_XINPUT_VERSION, - MOD_CLASS_XINPUT, - {0, 0, 0, 0} /* signature, to be patched into the file by */ - /* a tool */ -}; - -_X_EXPORT XF86ModuleData kbdModuleData = { - &xf86KbdVersionRec, - xf86KbdPlug, - NULL -}; commit 8096183e9cb79944e322dcc0cd1f9e50c97ad2c8 Author: Alexandr Shadchin <alexandr.shadc...@gmail.com> Date: Tue Nov 24 12:46:42 2015 +0500 Remove empty function xf86KbdUnplug Signed-off-by: Alexandr Shadchin <alexandr.shadc...@gmail.com> Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/kbd.c b/src/kbd.c index 189adca..4db2e0a 100644 --- a/src/kbd.c +++ b/src/kbd.c @@ -452,11 +452,6 @@ PostKbdEvent(InputInfoPtr pInfo, unsigned int scanCode, Bool down) xf86PostKeyboardEvent(device, scanCode + MIN_KEYCODE, down); } -static void -xf86KbdUnplug(pointer p) -{ -} - static pointer xf86KbdPlug(pointer module, pointer options, @@ -486,5 +481,5 @@ static XF86ModuleVersionInfo xf86KbdVersionRec = _X_EXPORT XF86ModuleData kbdModuleData = { &xf86KbdVersionRec, xf86KbdPlug, - xf86KbdUnplug + NULL }; commit ccf63a61f39e1f107a67c33d6a7ad24ea4c76b7e Author: Yasushi Oshima <oshima...@yagoto-urayama.jp> Date: Mon Jul 20 10:49:49 2015 +0200 Add defines for Japanese 106-key USB keyboards. Via http://gnats.netbsd.org/48347 Signed-off-by: Thomas Klausner <w...@netbsd.org> Acked-by: Peter Hutterer <peter.hutte...@who-t.net> diff --git a/src/bsd_KbdMap.c b/src/bsd_KbdMap.c index 123ab96..21f337d 100644 --- a/src/bsd_KbdMap.c +++ b/src/bsd_KbdMap.c @@ -345,17 +345,33 @@ static CARD8 wsUsbMap[] = { /* 132 */ KEY_NOTUSED, /* 133 */ KEY_NOTUSED, /* 134 */ KEY_NOTUSED, - /* 135 */ KEY_NOTUSED, - /* 136 */ KEY_NOTUSED, - /* 137 */ KEY_NOTUSED, - /* 138 */ KEY_NOTUSED, - /* 139 */ KEY_NOTUSED, +/* + * Special keycodes for Japanese keyboards + * Override atKeyname HKTG and BSlash2 code to unique values for JP106 keyboards + */ +#undef KEY_HKTG +#define KEY_HKTG 200 /* Japanese Hiragana Katakana Toggle */ +#undef KEY_BSlash2 +#define KEY_BSlash2 203 /* Japanese '\_' key */ + + /* 135 */ KEY_BSlash2, /* Japanese 106 kbd: '\_' */ + /* 136 */ KEY_HKTG, /* Japanese 106 kbd: Hiragana Katakana toggle */ + /* 137 */ KEY_Yen, /* Japanese 106 kbd: '\|' */ + /* 138 */ KEY_XFER, /* Japanese 106 kbd: Henkan */ + /* 139 */ KEY_NFER, /* Japanese 106 kbd: Muhenkan */ /* 140 */ KEY_NOTUSED, /* 141 */ KEY_NOTUSED, /* 142 */ KEY_NOTUSED, /* 143 */ KEY_NOTUSED, - /* 144 */ KEY_NOTUSED, - /* 145 */ KEY_NOTUSED, +/* + * Special keycodes for Korean keyboards + * Define Hangul and Hangul_Hanja unique key codes + * These keys also use KANA and EISU on some Macintosh Japanese USB keyboards + */ +#define KEY_Hangul 201 /* Also KANA Key on Mac JP USB kbd */ +#define KEY_Hangul_Hanja 202 /* Also EISU Key on Mac JP USB kbd */ + /* 144 */ KEY_Hangul, /* Korean 106 kbd: Hangul */ + /* 145 */ KEY_Hangul_Hanja, /* Korean 106 kbd: Hangul Hanja */ /* 146 */ KEY_NOTUSED, /* 147 */ KEY_NOTUSED, /* 148 */ KEY_NOTUSED,