xrdp
xrdp copied to clipboard
Update scancode processing
Fixes #621 Fixes #355
This is a significant re-write of xrdp keyboard handling.
See also xorgxrdp PR neutrinolabs/xorgxrdp#316
This builds on the work in #3039 / #3113 with significant changes:-
- The ad-hoc ways of indexing scancodes have been brought together in a 'scancode index' which maps an RDP scancode into an 8-bit value. This index can then be used to access an array containing state information about a particular key.
- RDP scancode defines are provided in a new development file xrdp_scancode_defs.h
- (related to the above) A lot of magic numbers have been removed.
- Some keys which only worked with xorgxrdp (pause and ABNT2 keypad point) now work with VNC as well.
- The confusingly named function
xrdp_load_keyboard_layout()
which is only needed for xorgxrdp has been renamedxrdp_init_xkb_layout()
and is now only called when needed. - The keycode set (
base
orevdev
) can be specified for the X server at run-time.The corresponding XKB rules are passed toxorgxrdp
. - A minor unreported problem with xorgxrdp has been resolved.
I've got a bit more testing to do before I can merge this, but I'd welcome any comments.