diff --git a/libxrdp/xrdp_sec.c b/libxrdp/xrdp_sec.c index 40315a50..cc8b8d16 100644 --- a/libxrdp/xrdp_sec.c +++ b/libxrdp/xrdp_sec.c @@ -236,7 +236,9 @@ xrdp_load_keyboard_layout(struct xrdp_client_info *client_info) char keyboard_cfg_file[256] = { 0 }; char rdp_layout[256] = { 0 }; - LLOGLN(0, ("xrdp_load_keyboard_layout:")); + LLOGLN(0, ("xrdp_load_keyboard_layout: keyboard_type [%d] keyboard_subtype [%d]", + client_info->keyboard_type, client_info->keyboard_subtype)); + /* infer model/variant */ /* TODO specify different X11 keyboard models/variants */ g_memset(client_info->model, 0, sizeof(client_info->model)); @@ -422,8 +424,8 @@ xrdp_load_keyboard_layout(struct xrdp_client_info *client_info) list_delete(values); LLOGLN(0, ("xrdp_load_keyboard_layout: model [%s] variant [%s] " - "layout [%s]", client_info->model, client_info->variant, - client_info->layout)); + "layout [%s] options [%s]", client_info->model, + client_info->variant, client_info->layout, client_info->options)); g_file_close(fd); } else diff --git a/xorg/X11R7.6/rdp/rdpinput.c b/xorg/X11R7.6/rdp/rdpinput.c index 4c976417..6ef432e6 100644 --- a/xorg/X11R7.6/rdp/rdpinput.c +++ b/xorg/X11R7.6/rdp/rdpinput.c @@ -325,6 +325,10 @@ rdpLoadLayout(struct xrdp_client_info *client_info) { set.layout = client_info->layout; } + if (strlen(client_info->options) > 0) + { + set.options = client_info->options; + } retry: /* free some stuff so we can call InitKeyboardDeviceStruct again */