summaryrefslogtreecommitdiffstats
path: root/xrdp/lang.c
diff options
context:
space:
mode:
authorjsorg71 <jay.sorg@gmail.com>2014-11-08 21:25:40 -0800
committerjsorg71 <jay.sorg@gmail.com>2014-11-08 21:25:40 -0800
commitc39d2b0912cc6a5fec7dd07b5fd03779df692999 (patch)
tree088385f4487b081c53d3c502508859960698cec4 /xrdp/lang.c
parentb66aafcd31b086b8d5eb1fe73e083d0b24ddb5fc (diff)
parentcc3231272daa1b190df6f532203a242bdcc91e24 (diff)
downloadxrdp-proprietary-c39d2b0912cc6a5fec7dd07b5fd03779df692999.tar.gz
xrdp-proprietary-c39d2b0912cc6a5fec7dd07b5fd03779df692999.zip
Merge pull request #178 from mgorny/altgr-keymap
altgr+shift/capslock support in keymaps
Diffstat (limited to 'xrdp/lang.c')
-rw-r--r--xrdp/lang.c17
1 files changed, 16 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)
{