diff --git a/libweston/backend-rdp/rdp.c b/libweston/backend-rdp/rdp.c index d579f4739..02a3d763d 100644 --- a/libweston/backend-rdp/rdp.c +++ b/libweston/backend-rdp/rdp.c @@ -1007,11 +1007,6 @@ convert_rdp_keyboard_to_xkb_rule_names( xkbRuleNames->layout = "us"; xkbRuleNames->variant = 0; } - /* when no layout, default to "us" */ - if (!xkbRuleNames->layout) { - xkbRuleNames->layout = "us"; - xkbRuleNames->variant = 0; - } weston_log("%s: matching model=%s layout=%s variant=%s options=%s\n", __FUNCTION__, xkbRuleNames->model, xkbRuleNames->layout, xkbRuleNames->variant, xkbRuleNames->options); diff --git a/libweston/backend-rdp/rdprail.c b/libweston/backend-rdp/rdprail.c index 5da545e87..39e002938 100644 --- a/libweston/backend-rdp/rdprail.c +++ b/libweston/backend-rdp/rdprail.c @@ -1001,6 +1001,14 @@ rail_client_LanguageImeInfo_callback(bool freeOnly, void *arg) __func__, new_keyboard_layout, settings->KeyboardType, settings->KeyboardSubType); + + rdp_debug_error(b, "%s: Resetting default keymap\n", __func__); + keymap = xkb_keymap_new_from_names(peer_ctx->item.seat->compositor->xkb_context, + &peer_ctx->item.seat->compositor->xkb_names, + 0); + weston_seat_update_keymap(peer_ctx->item.seat, keymap); + xkb_keymap_unref(keymap); + settings->KeyboardLayout = new_keyboard_layout; } } }