diff options
Diffstat (limited to 'xrdp/xrdp_wm.c')
-rw-r--r-- | xrdp/xrdp_wm.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/xrdp/xrdp_wm.c b/xrdp/xrdp_wm.c index d2ef8fa5..4a9baecd 100644 --- a/xrdp/xrdp_wm.c +++ b/xrdp/xrdp_wm.c @@ -1171,12 +1171,18 @@ xrdp_wm_key(struct xrdp_wm* self, int device_flags, int scan_code) self->num_lock, self->scroll_lock, self->session->client_info->keylayout); - /*g_printf("%x\n", c);*/ - if (c != 0) + /* this means don't send anything */ + /* used to qvoid sending alt to xserver eg altgr */ + /* if alt state is down, the xserver avoids the keystroke */ + if (c == 1) { - self->mod->mod_event(self->mod, msg, c, 0xffff, + } + else if (c != 0) + { + self->mod->mod_event(self->mod, msg, (unsigned char)c, 0xffff, scan_code, device_flags); - xrdp_add_key_down(self, c, 0xffff, scan_code, device_flags); + xrdp_add_key_down(self, (unsigned char)c, 0xffff, scan_code, + device_flags); } else { |