-
I see that this is not super obvious, but KeyboardSettingUI.apply() assumes that the keyboard setting was changed by the user, so it sets IS_DEFAULT (which is somewhat misnamed, it should rather be WAS_SET_AUTOMATICALLY (or WAS_SET_BY_USER, with the opposite value)) to false. When the keyboard layout is changed automatically because the language was changed, we want to set IS_DEFAULT to true, so we don't call KeyboardSettingUI.apply(), but directly self._setting.save(). What was missing was the call to apply_layout_to_current_screen(), which was causing #17794.
08fbfa4e