diff options
Diffstat (limited to 'xrdp')
| -rw-r--r-- | xrdp/lang.c | 17 | ||||
| -rw-r--r-- | xrdp/xrdp_keyboard.ini | 3 | ||||
| -rw-r--r-- | xrdp/xrdp_types.h | 3 |
3 files changed, 22 insertions, 1 deletions
diff --git a/xrdp/lang.c b/xrdp/lang.c index 5ffff0eb..a2942599 100644 --- a/xrdp/lang.c +++ b/xrdp/lang.c @@ -90,14 +90,26 @@ get_key_info_from_scan_code(int device_flags, int scan_code, int *keys, rv = &(keymap->keys_noshift[index]); } } + else if (shift && caps_lock && altgr) + { + rv = &(keymap->keys_shiftcapslockaltgr[index]); + } else if (shift && caps_lock) { rv = &(keymap->keys_shiftcapslock[index]); } - else if (shift) + else if (shift && altgr) + { + rv = &(keymap->keys_shiftaltgr[index]); + } + else if (shift) { rv = &(keymap->keys_shift[index]); } + else if (caps_lock && altgr) + { + rv = &(keymap->keys_capslockaltgr[index]); + } else if (caps_lock) { rv = &(keymap->keys_capslock[index]); @@ -242,8 +254,11 @@ get_keymaps(int keylayout, struct xrdp_keymap *keymap) km_read_section(fd, "noshift", keymap->keys_noshift); km_read_section(fd, "shift", keymap->keys_shift); km_read_section(fd, "altgr", keymap->keys_altgr); + km_read_section(fd, "shiftaltgr", keymap->keys_shiftaltgr); km_read_section(fd, "capslock", keymap->keys_capslock); + km_read_section(fd, "capslockaltgr", keymap->keys_capslockaltgr); km_read_section(fd, "shiftcapslock", keymap->keys_shiftcapslock); + km_read_section(fd, "shiftcapslockaltgr", keymap->keys_shiftcapslockaltgr); if (g_memcmp(lkeymap, keymap, sizeof(struct xrdp_keymap)) != 0) { diff --git a/xrdp/xrdp_keyboard.ini b/xrdp/xrdp_keyboard.ini index bd4e4e68..433d71cf 100644 --- a/xrdp/xrdp_keyboard.ini +++ b/xrdp/xrdp_keyboard.ini @@ -66,6 +66,7 @@ rdp_layout_ru=0x00000419 rdp_layout_se=0x0000041D rdp_layout_pt=0x00000816 rdp_layout_br=0x00000416 +rdp_layout_pl=0x00000415 # <rdp layout name> = <X11 keyboard layout value> [default_layouts_map] @@ -78,6 +79,7 @@ rdp_layout_ru=ru rdp_layout_se=se rdp_layout_pt=pt rdp_layout_br=br(abnt2) +rdp_layout_pl=pl # if two sections have the same keyboard_type and keyboard_subtype, then # the latter could override the former. @@ -103,3 +105,4 @@ rdp_layout_ru=ru rdp_layout_se=se rdp_layout_pt=pt rdp_layout_br=br(abnt2) +rdp_layout_pl=pl diff --git a/xrdp/xrdp_types.h b/xrdp/xrdp_types.h index 89a7ce93..29aaac84 100644 --- a/xrdp/xrdp_types.h +++ b/xrdp/xrdp_types.h @@ -318,8 +318,11 @@ struct xrdp_keymap struct xrdp_key_info keys_noshift[256]; struct xrdp_key_info keys_shift[256]; struct xrdp_key_info keys_altgr[256]; + struct xrdp_key_info keys_shiftaltgr[256]; struct xrdp_key_info keys_capslock[256]; + struct xrdp_key_info keys_capslockaltgr[256]; struct xrdp_key_info keys_shiftcapslock[256]; + struct xrdp_key_info keys_shiftcapslockaltgr[256]; }; /* the window manager */ |
