X11 Unicode KeyEvent Проблемы - PullRequest
       4

X11 Unicode KeyEvent Проблемы

0 голосов
/ 30 декабря 2011

Я работаю на виртуальной клавиатуре, которая требует Unicode.Используя код, который я получил от http://goo.gl/pv9ht, он работает для обычных (ASCII) ключей при преобразовании в код ключа, но XKeysymToKeycode () возвращает 0 для ключевого слова, такого как XK_agrave (include / X11 / keysymdefs.h).

Я тоже не совсем уверен, как сделать то же самое с заглавными буквами.Когда я пытаюсь сделать то же самое с XK_A (это заглавная «A»), он возвращает тот же код ключа, что и «a».Это имеет смысл, поскольку они представляют собой один и тот же код ключа (вместе с кучей других символов) в соответствии с выводом 'xmodmap -pke'.Но как мне сделать так, чтобы он отправлял (XSendKeyEvent) заглавную форму кода ключа?

Справка будет принята с благодарностью.

1 Ответ

1 голос
/ 30 декабря 2011

Вы отправляете с ключом-модификатором (в данном случае смещение)

Итак, вы устанавливаете XKeyEvent-> state | = ShiftMask

Элемент состояния устанавливается так, чтобы указывать логическое состояние кнопок указателя и клавиш-модификаторов непосредственно перед событием, которое является побитовым включением ИЛИ одной или нескольких масок клавиш-кнопок или модификаторов: Button1Mask, Button2Mask, Button3Mask, Button4Mask, Button5Mask, ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask и Mod5Mask.

Источник: http://linux.die.net/man/3/xkeyevent

...